Support Rails 4.1 / Minitest 5

This solves most of the open issues that are in the issues list right now.

* Refactor the current test framework detection code to a separate file, and add tests
* Add explicit Appraisals for (and run tests against) Test::Unit, Minitest 4, and Minitest 5 only (apart from Rails)
* Mix Shoulda::Context into Minitest::Test if we detect that Minitest 5 has been loaded