Added in database structure and basic IRC server integration

I know you're not going to like the fact that I did this in one huge commit, Kiril.

This commit creates database.py which contains methods for interaction with the database relevant to our needs. Currently completed database integration involves the following:

- If the database does not exist, initialize it and create empty user and channel tables. Another method exists to destroy the database so it can be recreated.
- Created methods to add/delete/register users, and method to add permission to a user for a given channel
- Created methods to add/delete channels, set the channel topic, and add messages to the channel's table.
- Modified the checker so that it uses the database to get the user's credentials. Currently password is not encrypted, I think we could add simple crypt (https://pypi.python.org/pypi/simple-crypt) to the VM and use that for this.
- The same realm and portal as before are still currently used. When the context is initialized, it currently pulls every channel from the database, and adds the group to the realm. When a group does not exist, it gets added to both the database and the realm.

Currently not completed integration tasks:
- Store encrypted passwords into the database as mentioned above
- Actually write messages into the database as they are posted (although a method exists to do so)
- Actually read/write channel topic information from the database (write method exists, not read)
- Probably some other stuff I can't think of right now
Will just leave one comment, but all exceptions which are simply `pass`ed need to have some handling added - at least logging the problem, more desirably failing hard and terminating the program.

In this case, failing to initialize the database is a terminal error state - we cannot run a server without a database! So simply crash the program, as it is not possible to recover.