Make TestRunner#run_tests more generic.

- This allows setup/teardown methods to be defined.
- Note that the behaviour for multiple tests is now slightly different,
  in that a single TestCase is defined with all test definitions and
  then an instance of the TestCase is created to run each of the tests.
  Previously a new TestCase class was defined for each test. I think
  this is actually more realistic.
Workaround a MiniTest bug.

The bug is fixed in
seattlerb/minitest@c8283ff7e6ddf1ef23af9c3c0141a64735f74a9f, but has not
yet been released.
I think this `require` is unnecessary and confusing.
Add first draft of non-monkey-patching test framework integration.

- Support for latest (as yet unreleased) MiniTest. Specifically we need
  this
seattlerb/minitest@fa9f8b8e750a8eb6c01a1ae28b88b58c81a2b093.
- Support for latest Test::Unit.
- Explicit `include Mocha::Integration::MiniTest` or `include
  Mocha::Integration::TestUnit` is currently necessary. I'm a little
  undecided about that.
- Added rake tasks to run the two integration tests, but these are not
  wired into the default rake task or into Travis-CI yet. Mainly because
  I'm waiting for the required release of MiniTest.
Fail fast if Mocha integration is not supported for test library.

- I haven't tested this properly, because I'm currently offline on a
  cross-channel ferry.
- I haven't checked whether an earlier version of Test::Unit might be
  sufficient.
Rename Integration namespace to Adapters.

This is because I want to rename MonkeyPatching back to Integration as
in master [1], but I want to keep the new "adapters" separate.

[1] 1017ea89df6b4b8abe068154be71551a1caf053d
Rename MonkeyPatching back to Integration.

This is to match up with the reverted commit [1] in master.
Merge branch 'master' into minitest-and-testunit-integration-without-monkey-patching

It was easier to merge rather than re-base in this case, because of the
back and forward of the MonkeyPatching/Integration namespace renaming.
Run new MiniTest & Test::Unit adapter tests in build matrix.

Both in local build matrix script and (hopefully) in Travis CI.
Extract activation of adapters into separate file.

This provides a simple way to use the new adapters when you want *all*
your test cases to have Mocha fitted, while still allowing selective use
of the adapters for specific test cases by requiring and including them
directly.
Move require statements closer to where they are needed.

Also remove redundant require statements.
Move require statements outside conditional.

These require statements don't actually "do" anything and everything
they define is nicely namespaced, so there is no reason not to always
require them which makes the code a bit simpler.
Refactor MiniTest monkey-patching integration.

Hopefully this makes it a bit easier to see what's going on and I hope
it will allow me to further simplify things.
Move MiniTest monkey-patching code into the individual version modules.

By doing this I hope to make it easier to do something different for the
most recent versions where we want to use the new adapter.

This commit does introduce significant duplication, but I hope to remove
that later.
Removed APITest now better coverage is provided by adapter tests.

It might still be nice to have an example of how to write an adapter for
another test framework, but I feel that's a separate issue and more
about improving documentation.
Removed MiniTestTest now better coverage is provided by adapter tests.
Use the new MiniTest adapter for v3.3.0 instead of monkey patching.

The version checking probably does belong with the adapter itself, but
it was causing problems so I moved it. I think this is still a step
forward.
Refactor Test::Unit monkey-patching integration.

Hopefully this makes it a bit easier to see what's going on and I
hope it will allow me to further simplify things. It also makes things
consistent with the changes I've made to the MiniTest monkey-patching
integration.
Move Test::Unit monkey-patching code into the individual version modules.

By doing this I hope to make it easier to do something different for the
most recent versions where we want to use the new adapter.

This commit does introduce significant duplication, but I hope to remove
that later. And encouragingly the duplicate code is now almost identical
to the MiniTest equivalent - see
7ed2733b7da21d62e34ae6bf6209861877adb76b.
Use a custom exception handler in the new Test::Unit adapter.

* It turns out that Test::Unit::AssertionFailedError is derived from
  StandardError; whereas MiniTest::Assertion is derived from Exception.
* I had been telling Mocha::ExpectationErrorFactory to use
  Test::Unit::AssertionFailedError in the Test::Unit adapter, but since
  this inherits from StandardError, this would mean a regression on #15.
* So instead I've introduced a custom exception handler in the new
  Test::Unit adapter to rescue Mocha::ExpectationError as if it were a
  Test::Unit::AssertionFailedError, even though the former is derived
  from Exception.
* Unfortunately I have had to call some private methods in Test::Unit
  from within the exception handler method. I'm going to ask the Test::Unit
  developers whether there is an alternative to doing this.