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.
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