Adding run.sh

Depending on the exit code, this script will either:
	0 	=> Quit
	100 	=> Recompile and restart the bot
	101 	=> Perform a git pull and then recompile and restart the bot
Laying foundation for refactoring.

Does not yet connect or anything interesting.
Merge remote-tracking branch 'origin/restart+update' into refactor
Bot connects.

Everything should be set up to start creating BotComponents for actual
functionality.
Merge branch 'master' of github.com:numberten/zhenya_bot into refactor
Bug fix.

The exception/error handling in loop did not work, previously. Upon a
disconnection with the server, the bot would infinite loop. Now it correctly
terminates when there is a network issue.
Generalized .gitignore and minor tweaks to Bot.hs
Improved flags.

Handles multiple channels and gives a better description for command line
arguments.
Creating Bot.Component module.

Pulled most of the types out of Bot into Bot.Component. This will allow for
the Bot module to import required BotComponents without creating circular module
dependencies.
Added SimpleCommand components.

SimpleCommands are components activate when the user supplies a command of the
form "!command" with no arguments.

All IO related functionality was pulled out into Bot.IO.
Added support for commands that take arguments.
Generalized the fuck out of commands.

Plain functions (String -> Bot ()) are now instances of Botable and the command*
methods create functions of that form. Also defined a commandT method which
allows for commands within monad transformers which should allow for stacking
various types of components within monads.
Added support for Stateful components.

Implemented !uptime by combining commandT and stateful.
Added a ping/pong component.

The bot will now properly reply to PING messages from the server with the
appropriate PONG message.
Added fuzzy matching components.

Ported over the fuzzy matching response to the refactored code.
Added the !roll command.
Added conditional components.

Fuzzy components now build ontop of Conditional components.
Added component combinators and !ding and !ascend.

Bot also keeps track of the last nick to speak now.
Finished refactoring.

Should have feature parity with the old code.