Add basic user handling functions

This adds 4 tables to the database. One each for Users, Groups,
Permissions and Tokens.

Users may request a token, check if the token is valid and revoke a token.

This token may be passed in with the header X-Auth-Token and used to validate
that the user has the required permissions to enact the request.

The db_create.py script builds the database, adds the basic set of permissions
and creates 2 groups, nobody (with no permissions) and superuser (with all
permissions). This script also creates the first user in the system and adds
them to the superuser group.

fixes #3
fixes #4