Reworking database fixtures

Reworkings our database fixtures so that:

* Self contained, a brand new database is spun up and tore down at the end
* Fixes transactions so that each test is actually ran inside it's own transaction
* Greatly simplifies our database related fixtures
* Marks all tests that require the database with the ``db`` mark, making it easy to exclude them.

You can run all of the tests except for those that need the DB by doing:

```console
$ tox -e py34 -- -k "not db"
```