Rewrite tests for ensure_inclusion_of

ensure_inclusion_of is pretty complex. Not only does it support two ways
of specifying valid values (in_array, in_range), but it also supports
multiple column types (string, integer, float, decimal, boolean).

When it comes to handling numbers and strings, ensure_inclusion_of has
very similar logic, and we can test these cases similarly.

We also do not have tests for handling regular Ruby attributes as
opposed to database columns (validates_inclusion_of works with both).
Those tests will be added in a future commit, this commit lays the
groundwork for that.
Add a small stubbing library

This provides a robust solution for temporarily stubbing (and
unstubbing) methods. It will be internally by the strong parameters and
delegation matchers.
Fix several issues with strong parameters matcher

* Instead of decorating controller params, use our "Doublespeak"
  mini-library to stub ActionController::Parameters. This prevents from
  interfering with the params object if it is used in various ways, i.e.
  if `params.fetch(...).permit(...)` is used instead of
  `params.require(...).permit(...)`.
* Fix compat with Rails 4.1, where the verb for #update is PATCH not
  PUT
* Track multiple calls to #permit within a given controller action
* Fix so that if the route for your action requires params (such as
  :id) then you can specify those params
Fix delegate_method to double objects properly

Use our Doublespeak mini-library to stub the target method on the object
in question, ensuring that the stubs we create during matching get
reversed when the match ends.

Also:

* Make it possible to negate the matcher, and use negation in tests
  rather than !matches?
* If the matcher fails, add more information to the failure message as
  to what was actually called on the target object
Fix ensure_inclusion_of to support plain attrs

Also add missing tests to confirm this behavior.
Fix NonNullableBooleanError so it contains attribute name
Bump to version 2.6.1.rc1
Rename method to match other Rails version methods
Fixes uniqueness matcher for enum columns

In Rails 4.1, if the scope from a validates_uniqueness_of matcher is an
enum, next_value won't get the correct value, then tests will fail even
that validation works. This adds a way to check if the scoped attribute
is an enum, and correctly get the next value.
allow_value.with_message takes i18n interp values
v_n_o no longer treats numbers as floats

Essentially validate_numericality_of when used with a comparison
qualifier required you to use only_integer when the validation itself
had only_integer on it, because the boundaries of the comparison were
tested using small decimal numbers rather than whole numbers. This
change was introduced in bc110f7, but is obviously is a backward
incompatible change, so we are reverting it.
Fix tests for ComparisonMatcher to use proper error messages
Bump to version 2.6.1.rc2
Bump version to 2.6.1
Speed up repeated execution of unit tests

In the Cucumber tests, we do not access the Internet to install test
dependencies -- we assume that you've already run `bundle install` or
`appraisal install` to install those dependencies. Change the RSpec
tests so that the same thing happens.