larger updates to plugin/hook system.

hooks can now be named (via keyword, or anything that's eq able).
hooks can be removed either by the hook function or the name given at
add-hook
plugins now require an unload-function, which will presumably unhook
them from wookie.
plugins now must be enabled vie wookie-plugins:*enabled-plugins*.
plugins can have multiple source folders.
plugins that are loaded/registered cannot be re-loaded until unload-plugin is called on them. load-plugins unloads all plugins before loading the existing ones. this makes it so that the first folders on the *plugin-folders* list are preferential. for isntance, if the :session plugin is loaded from the first folder in that list, then a second :session plugin is encountered, the second will be ignored when it tries to register itself because the first has already loaded.