reorganizations and cleanups to the lib code and test suite

This is a cleanup pass mainly to get the tests up to our modern
conventions.  This involves the following:

* no longer use `BaseTests`
* standard test file requires convention
* try to organize the lib and test code to where there is a unit
  test file for each lib file

Some other random changes include breaking out the manager logic
into its own file, breaking out the test helpers into their own file/module (#73),
adding a `test_handler` test helper.

This is all prep for new features and changes.  I want the tests
and code to be in the best state possible before I go making
changes.

Closes #73.

@jcredding - sorry the diff is rugged, you should see patterns to the test file cleanups.  Tests all pass.  I'm going to go validate in our apps now.  Ready for review.