Modernizing the plugin.

- Gemfile.lock should not be checked in for libraries.
- Document all the things.
- Remove the override to assert_match; all someone has to do to test things this way is to reverse their parameters.
- Add assert_has_keys/refute_missing_keys to identify when a hash (or something else that responds to #has_key?) does not have the expected keys.
- Add assert_missing_keys/refute_has_keys to identify when a hash (or something else that responds to #has_key?) has keys that are not expected.
- Add assert_raises_with_message for a simple case of expecting a particular exception class with a specific message.
- Infected Minitest::Expectations for all the assertions.
- Implemented a special case of must_be_between because normal assertion infection is insufficiently flexible.