commands are now run concurrently by using the futures module
calling send_to() only once
combined all PRIVMSG else branches
sending the response right when the future has finished working by using add_done_callback()
run_cmd() is now split into get_cmd() and run_cmd()
enhanced docs
logfile is now passed to run_cmd()
code clean up
code clean up
split commands into three categories:
 * core: the core commands that only owners can call and run in the same process
 as the bot does, they also have access to the bot's socket
 * user: normally accessible commands that will run in a separate process in
 order to enable both I/O bound and CPU bound work
 * auto: similarly to user commands they will be run in a separate process,
 the only difference being that they cannot be called by users or owners,
 they are fired automatically

Also now the user and auto commands don't get access to the bot's socket, only
core commands do
exceptions from commands are reported
logging exceptiosn raised if failing to get a cmd
fix #34