Add 'run_sync' option to event plugins, to make sure they run before any commands or regexes
Make console logging use the new 'run_sync' paramater, to make sure that logs show up in order (first person saying command, then command result)

I was getting some instances where the logs would show up in the order: command result, person saying command. this fixes that.

Note that this also makes console logging a separate hook from file logging, as we don't need file logging to be in sync
Merge branch 'refresh' into refresh-make-logging-in-sync
Only start irc connections after all irc connections have been created.

This is in preparation for adding an @hook.onload hook for plugins, which must be run after all connections are created, but before the bot connects to any irc server.
Add @hook.onload hook available to plugins
Add connected variable to irc, and use it to prevent send() being called before connect() is.

This is to ensure that when a plugin's onload() hook is called, it doesn't attempt to send data to the irc server if the irc server hasn't been initiated
Stop Input methods from being called without targets, if certain variables on input have not been set.

This is a preventitive measure against plugins attempting to use methods in onload hooks.
Remove reloader
Create irc connections before loading plugins. This will allow plugins onload methods to do things with connections (anything but send data to them)
Make the main.run method return a bool, whether or not a plugin succeeded. This will be helpful in onload
Use onload hooks
we don't really need the bot to fork a thread
Bunch of stuff to make Input work correctly when all of it's variables are None
commentary
this is now a thing!
Merge branch 'refresh-add-onload' into refresh
Add global sqlalchemy metadata, and handle table creating in pluginmanager rather than in plugins.

Also update dbtest to use this new method
Pass database connection to plugins, instead of database engine. (Revert 788108f315e4441255196629c835271a8d35987c)
I'm hoping that I did this right
Move some stuff from load/unload module to register/unregister plugins