Move tests out of packages into standard modules.

There aren't enough tests to warrant an entire package for each
component.
Refactor test suite.

The test suite had a few functional tests polluting the unit tests.
This new structure has factored them out into a functional portion.  It
also updates the fixtures to be a little easier to write.   The rest of
the changes are mostly aesthetic improvements.