Add a context fixture

The new `context` feature is similar to the `app` fixture that was being
used for tests that needed the database. The major difference, however,
is that `context` will not only make sure there is an active context for
the test, but it will also create and drop all of the database tables.
This allows the tests to focus on testing the necessary functionality.

Because this fixture is being used by two test modules, with potential
for more down the road, a new `tests.fixtures` module is being added to
house all common fixtures.