Create database and tear down/recreate at end of each test. Fixes #195

This pull request means that there is always a populated test database that is wiped and re-created at the end of each test. This gets around some issues we've had where a database was required before tests were even run.
@squirrelo I thought the idea was to have a single decorator, and have the code moved from `build_test_database` to `drop_test_database`, and rename it to `clean_up_database`.

If we want to make sure that there is always a database, it does not make sense to provide two different decorators, since forgetting one will leave the database inconsistent....