Add an activity date to the database

Mark fields as non-null in the database
Ensure that updated is always touched
Also add a created attribute to User

This will allow us to track growth of the database.
Initial tool to synchronise the database

Doesn't yet do HEAD requests or anything else it should do.
Handle Not Modified in update-database
Move all database session management into a separate module

This module must be imported and the Session initialised before you
import the ORM, otherwise the ORM will not be able to interface with the
database.

The purpose of separating the session is that it allows us to use a
separate database for the unit tests.
Fix support for new entries