automatic database initialisation

Manually initialising the database (as a non-root user) was causing problems for users but the switch to `setup.py initialize` only confused the situation further.

After this change no manual intervention is required. When the server is run it creates the database file if it's missing.