Introduce common TestCase class for Mocha tests.

It is no longer possible to use `Test::Unit::TestCase` in the presence
of MiniTest v5. By introducing our own `Mocha::TestCase` class, we can
make the tests agnostic to the test library being used.
Tests all passing with MiniTest v5.

If the continuous integration build passes, then I'm happy to do a
proper release with official MiniTest v5 support.

These changes leave the code in a bit of a mess, but since it's only
test code, I'm happy to clear that up later.