tests: switch to minitest

Ruby 1.9+ uses Minitest as the backend for Test::Unit. As of Minitest 5, the shim has broken some compatibility with Test::Unit::TestCase in some scenarios.

Adjust the test suite to support Minitest 5's syntax.

Note that minitest/autorun does not really play well with forked processes in `test/fork_safety_test.rb`. Specifically, when examining a child process' exit code with `waitpid2`, the child process' exit code always appears to be "`1`", because minitest/autorun modifies the `at_exit` handler. See https://github.com/seattlerb/minitest/pull/429 for a discussion about this.

To work around this issue in we must explicitly call "`exit!`" instead of calling "`exit`" or even implicitly allowing the child to exit.