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 am not very familiar with these decorators, can you explain me why is it that you removed the one that seemingly creates a database on setUp and added it on tearDown? If the intent is to have a database up and running for every test it seems that with this approach that would not be the case.