Rename register_module and unregister_module to register_plugins and unregister_plugins, because that's what it's doing.

Those methods register all the plugins in a module, whereas load_module and unload_module will load and unload the modules.

Also rename load_modules to load_module, because I'm pretty sure that the function which loads one module was meant to have that name ,-,

Also get rid of load_modules wihch loads all modules in a list, as it's never used and probably won't be.

Move documentation comment into documentation for PluginManager, Module and Plugin.

Get rid of plugin_desc and implementing __str__ in the base Plugin, when plugin_desc just checks isinstance anyways. Instead have the __str__ be implemented in each plugin class, and return the same formatting string that plugin_desc would have given it.

Also implement __repr__ separately from __str__, see http://stackoverflow.com/questions/1436703

Related to that, make log_plugin use just plugin instead of plugin_desc(plugin)

Another thing, fixes the way that CommandPlugin assigns autohelp and permissions.