Merge pull request #1 from TheSerapher/master

[FIX] Call proper JSON Array data
Update README.md
Merge pull request #2 from TheSerapher/master

Fixes and minor improvements
Update README.md
[IMPROVEMENT] Made bot more modular
[FIX] Fixing crash when missing username
Added commands, allow SIGUSR1 calls

* [IMRPOVEMENT] Allos rehashing commands and blockupdate on SIGUSR1
* [FIX] Catch command exceptions, keeps bot running for rehashing
[LOGGING] Added logging of IRC commands
[IMPROVEMENT] Adding line buffer on socket
Merge pull request #3 from TheSerapher/modular

Modular
[BUG] Fixing command plugin calls
[FIX] Removed unuused variable
[FIX] Re-add SIGUSR1 blocknotify

This does not allow you to close the process via CTRL+C anymore. Need to
kill the process PID via kill -KILL <PID>. Might be fixed sometime in
the future.
[IMPROVEMENT] Adding more sample commands

* !norris to fetch random Chuck Norris joke
* !fortune to fetch a random fortune
* Updated !help
[IMPROVEMENT] Display command exceptions in logging
[FIX] Properly read multiline HTTP output
[IMPROVED] More data in status command
[IMRPOVED] Better log output on command class
Overhauled socket connection handling

* [IMPROVED] Use non-blocking sockets
* [IMPROVED] Moved generic calls into IRC Class
* [IMPROVED] Created settings module to translate config to settings
* [IMPROVED] Error handling via logging in main while loop

Known issue: If the socket dies, the bot will not be able to detect it
yet. I am unsure how this would walk using select.select().
[FIX] Increase receive buffer size