Add IConfigManager.shutdown() method.

Useful for command line scripts.
Track nickname changes, add nickname command.
Change control plugin name to 'control'.
Add delete_section and delete_value to database interface.
Identify moved to automatron-registration plugin.
Add automatron-user script
Move controller to automatron.controller.

This is the first phase in separating the controller from the plugin backend. There have been changes in all plugins and they'll change again in the future.
Split event handler / plugin logic into seperate methods.

This is done in preparation of separating the event manager and plugin manager.
Split EventManager from PluginManager
EventHandler uses interface/event name.

For backwards compatibility, PluginManager.emit() translates the emitted event to a string before passing it to EventHandler.emit().
Move name / priority properties to event handler interface.
Move parse_user out of client.

And into core.util.
Track client instance from factory.
Track client factories in controller.
Controllers exposes event driven client actions.
Fixup: Missing import STOP in automatron_control
Use new client action events.
Client no longer adds itself as an event argument.

Instead, a dictionary with server info is added. This is to make the event data JSON encodable.
Rename server to server_name in IAutomatronClientActions.
Rename EventManager.emit to dispatch_event.

PluginManager.emit() remains emit() because that will be used to emit events over ZeroMQ.