Use in-memory sqlite for tests

There was a problem with the unit tests not tearing down Postgres connections. I don't feel like dealing with that right now.
Merge in development branch
Merge branch 'maintenance' into klj
Create testing database when it does not exist. Drop tables before tests. Hard-code testing database URL and use a TEST_DATABASE_URL environment variable to override it.
Update documentation on database initialization and testing
Update documentation for database creation
Update documentation for running tests
Update README formatting
Fix formatting in README.
Add image to README.
Merge in testing utility changes