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.
Yay! Tests all passing with MiniTest v5.

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.