Fix a bug in splitMessage()

When a newline is present but the total message length is less than maxLength,
the message would not be split at all, and instead be sent with a newline in the message.
Fix a missing dependency: pbkdf2
Merge pull request #37 from ekimekim/dev/0.3

Misc bug fixes
Add services as a subtype of ModuleData

Services are modules that act like a pseudo-user and respond to commands.
They come "out of the box" with some useful functionality and shortcuts,
see service.Service for details.
Services are subclasses of ModuleData (instead of being their own seperate class)
because they need to make use of a number of module-level hooks, and it makes it easier
for the implementor if this is done automatically.

What is not implemented here:
    How to determine if a user is a service admin.
        Hopefully to be done later.
    Anything to do with cross-server management of services.
Create a test service testing basic service functionality

Put it under a new test/ directory for all such basic test modules.
Add admin operator permission lookup to services
services: Abstract sending a user a NOTICE with message splitting into a method tellUser()
service: Set host, ident and gecos on self.user

Allow subclass to set them custom, else default to nick and server name.
service: Fix a race cdn where a user might disconnect before we try to send them a message

This is mainly a problem in callbacks and stuff, but we put it in the helper function to keep it simple.
service: Handle nick collisions with our LocalUser

Bitch-slap the other user.
Move service.py out of core, into a "module library" file

This is due to concerns that service.py assumes too much for core code.
dbservice: A subclass of Service for services with a database connection
Add pymysql to requirement.txt

This is needed for db stuff to work
Pull in schema file + test data from master branch
NickServ: DB Service for authentication and nick management

This initial implementation is not feature complete,
but is perhaps the minimum needed to be useful.
It does the following:
    * Allows users to authenticate
    * Registers authenticated users' nicks
    * Protects registered nicks from impersonation^

^ Important caveat: While it will force a nick change after a timeout,
it does not prevent the user from using the impersonated name within that time limit.
txircd.sql: Add some test data for donors
NickServ: implement logout
nickserv: Add GHOST command
nickserv: Implement ADD and DROP for nick management
nickserv: Implement NICKLIST