Add database and service model

This commit integrates SQLAlchemy and introduces a Service model.
This follows the Flask application layout described in Flask Web
Development [1].

The tests have been refactored into more traditional class based tests
because managing the state (for authorization and setting up the
database) was getting confusing with functions and decorators.
The Authorization header is provided by default and an option is
provided to switch this off for a test as authorised access is the
normal test case.

[1] https://github.com/miguelgrinberg/flasky