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.