Cleanup tests

It became apparent during a production deployment that tests were either
not being run, or some tests were skipped. I'm restructuring the tests
and making them matching the module heirarchy that they are testing.

Run `make tests` to run the tests.