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.
@ElDeveloper I don't think that's possible as even now you need to run the setup test environment script to create the database and settings table at the bare minimum. This doesn't add any extra steps, just makes it so the database is always populated instead of almost never populated. 

@josenavas Makes sense. Combined the two decorators.