Overhaul of unit tests for isolation/efficiency

- The test database schema is now created when the first fixture runs,
  no more scripts
- Each test is now responsible for loading whatever data it needs into
  the database.
- All the different tables have been merged into one, called data.
- The data table is truncated before each test runs.
- We no longer create two connections for each test (v2, v3), only one
- General all-around refactoring