Port tests to minitest

This ports the tests from the mostly obsolete `test-unit` to the `minitest` gem.

minitest has some attractive features, primarily better assertions (with better failure messages), randomization of both test suites (classes) and tests, and parallel execution capabilities.

Future versions of ruby will ship with only minitest preinstalled, instead of the test-unit compatibility layer that is currently used.