Use @property annotation for some attributes of Input. This makes more things calculated as they are used, and makes Input object store less stuff as attributes on itself.
Merge branch 'python3.4' into 3.4-use-property-for-input
Clean up the hook and pluginmanager system a bit, internally rename plugin->hook, module->plugin and event->raw. This doesn't change anything API wise yet, but it prepares too.
Oops, didn't mean to do that
Use sys.exec for restarting bot, move logging setup to core/__init__.

TODO: Make all of cloudbot a module of itself, with a __init__, possibly?
Merge branch '3.4-use-property-for-input' into 3.4-refactoring
Refactor directory format - to show idea. Good or bad?
Oops, fix that
Rewrite log's formatting preperation to work with input using @property. This also prepares it for if we split Input into multiple objects, and makes it more efficient.
Clean up terminologies to be consistent throughout the core. Also rename main.main to main.process, and fix doc string references.
Merge _register_hooks into load_plugin and _unregister_hooks into _unload_plugin
Merge branch 'python3.4' into 3.4-refactoring
Delete main.Handler, and re-implement the functionality in 8 lines.
Oops, fix import
Ok, maybe it takes a bit more than 8 lines. This fixes that .-.
Move main.process to CloudBot.process, move the rest of plugin launching nto PluginManager, and Input to events.py
This replaces Input with BaseEvent, CommandEvent and RegexEvent. *let the madness begin*

BaseEvent allows you to pass a 'base_event' parameter to it, so that it can get the majority of its attributes from another BaseEvent.

This allows for IRCConnection now puts BaseEvent into the message queue, rather than dicts.

Then CloudBot.process creates events using the new constructor with base_event=the event gotten from the queue, rather than Input(**message).

This also renames a bunch of elements on Input/BaseEvent:
* raw -> irc_raw
* prefix -> irc_prefix
* command -> irc_command
* msg & lastparam -> irc_message
* paramlist & paraml -> irc_paramlist

This also gets rid of the Input/BaseEvent.params attribute.
Rename plugins -> pluginmanager
modules -> plugins
Move cloudbot.py to cloudbot/__main__.py. This changes the syntax to start the bot from 'python cloudbot.py' to 'python -m cloudbot'.