Redo and restructure tests with convenience lib

This also requires nose as the test driver.