Configuration, admin commands, leave/join commands, and more!

Lots of changes here, hope it isn't too much :)

You can now configure the bot via a config.yml file. The defaults are saved on startup and configuration can be reloaded at any time with the !reload command

When issuing a reload the bot with load the configuration from config.yml, ignoring any changes that were made via commands. If you make changes via commands and want to save them, use !save. After reloading the configuration, Willie will switch servers, change his nick, update admin access and join/part channels to be sure everything is in sych with the new configuration.

You can now manage admin users with the following commands:
!admin add <user>  - This requires that the user be authenticated with nickserv!
!admin del <user> - Removes administration rights.
!admin list - Lists the users with administration access (this is currently only usable by admins, that should probably be changed)

Administrators MUST authenticate with nickserv before issuing any admin commands, If you don't, Willie wont like it very much. Also worth noting, administrator account names are saved, not their nickname. This means you'll have admin access on any users linked to that account.

Administrators have access to a few extra commands:
!join <channel> - Joins the specified channel, duh.
!leave <channel> - If no channel is specified, the bot will leave the current channel. Due to the current nature of the bot, I've prevented it from leaving it's last channel. He'll beg. Be nice to Willie.

Enjoy :) If you'd like anything changed before accepting this PR just let me know.