Function: unload-feature

Unload the library that provided FEATURE.
If the feature is required by any other loaded code, and prefix arg FORCE
is nil, raise an error.

Standard unloading activities include restoring old autoloads for
functions defined by the library, undoing any additions that the
library has made to hook variables or to `auto-mode-alist', undoing
ELP profiling of functions in that library, unproviding any features
provided by the library, and canceling timers held in variables
defined by the library.

If a function `FEATURE-unload-function' is defined, this function
calls it with no arguments, before doing anything else. That function
can do whatever is appropriate to undo the loading of the library. If
`FEATURE-unload-function' returns non-nil, that suppresses the
standard unloading of the library. Otherwise the standard unloading
proceeds.

`FEATURE-unload-function' has access to the package's list of
definitions in the variable `unload-function-defs-list' and could
remove symbols from it in the event that the package has done
something strange, such as redefining an Emacs function. (fn FEATURE &optional FORCE)