Use minitest consistently

This PR does a bunch of work to clean up the test suite, it was inspired by trying to pull in support for #205.

Remaining work includes #205, #206 or #207.