Handle ensure_inclusion_of for boolean columns

Currently, using `ensure_inclusion_of` against a boolean column doesn't
work. We can assert that the column allows boolean values, but what
about values that should be rejected? Well, it depends on what you give
to `ensure_inclusion_of`. Here's how it works now:

* `ensure_inclusion_of(:attr).in_array([true])` asserts that false is
  rejected
* `ensure_inclusion_of(:attr).in_array([false])` asserts that true is
  rejected
* `ensure_inclusion_of(:attr).in_array([true, false])` does not assert
  that anything is rejected, instead informing the developer how
  this sort of expectation is not fully testable (anything other than
  true, false, or nil will be converted to false).
* `ensure_inclusion_of(:attr).in_array([nil])`, when the column is
  nullable, does not assert that anything is rejected, either, also
  printing a warning
* `ensure_inclusion_of(:attr).in_array([nil])`, when the column is
  non-nullable, raises an error because this expectation is not testable
  in any way, as setting a boolean column to nil this way will get
  converted to false.
Change `validate_uniqueness_of_matcher` to give non-null columns default values

Previously, if a model had an attribute that mapped to a non-nullable database
column that was not under test the matcher would fail with an SQL error like:

    examples.column may not be NULL #...

With this change the matcher attempts to provide a default value for all
non-nullable, non-primary attributes. This should avoid the above error in
simple cases.
Install appraisals before running the test suite

Currently, `rake` does run the `appraise` task before running tests. If
you run `rake appraise` on its own, it runs `rake appraise:install`
beforehand. However, the way that `rake` runs `appraise` is by
executing, not invoking, it. Hence, `appraisal:install` will actually
not be run (as #execute does not run dependencies for the task being
executed).

This fix is mostly useful when running tests locally -- on Travis this
isn't a problem b/c we are running `rake spec cucumber` instead of just
`rake`.
Use the new appraisal executable in 1.0.0.beta1
Add allow_nil option to validate_numericality_of
Update numericality comarison matcher more accurate
Validating presence of a secure password may raise an error

If you have a model that declares `has_secure_password` and you also
have a presence validation on the password, and you write a test against
this validation using an instance of your model where the password is
already set, then your test will fail. This is because
has_secure_password (at least on Rails 4) defines #password= such that
if it is given nil, then the password will not be overwritten with nil.
This interferes with how our validate_presence_of matcher works.

Unfortunately there is not a great way to get around this (using
\#write_attribute won't work, either). So in this case we raise a
helpful error message that instructs the user to use an empty record
against `validates_presence_of`.
Make optional the required argument in have_db_index(...).unique
Add CallbackMatcher for ActionController

Matcher for checking if a filter / action callback is in place within a
controller.

Example:

```ruby
describe UserController do
  it { should use_before_filter(:authenticate_user!) }
end
```
Add documentation for CallbackMatcher in README
Restore delegation matchers

This commit reverts 77dc477c
Restore delegate_method matcher

Matcher was removed in commit 77dc477c due to issues described in
https://github.com/thoughtbot/shoulda-matchers/issues/252

We've moved away from using Bourne and Mocha's `HaveReceived` matcher and
implemented a `StubbedTarget` class for spying on methods to be delegated.
We also removed the stub call to be handled via `define_method` for
framework-independent support.

Other changes include:

* Use 1.9 hash syntax in `delegate_method`
* Don't explicity test failure messages
Add more examples in README for DelegateMethod
Ensure independent matchers are widely available

The current form of including independent matchers for TestUnit does not
end up including it in `ActiveSupport::TestCase` tests in a Rails app.
This ensures that `Shoulda::Matchers::Independent` are available in
`ActiveSupport::TestCase`.
Revert "Remove 'strong_parameters' matcher"

This reverts commit 7e7fb14677fac1e151c93becc3636e7f6731cf51.
Remove dependencies for `StrongParametersMatcher`

Refactor the `StrongParametersMatcher` to work without depending on
bourne for spying on methods. Use an internal spying tool to provide
platform independence.

Other improvements include:

* Standardize `failure_message` method naming
* Properly detect when a matcher does not match
* Add documentation for `permit` matcher.
Add rails 4.1.0 to Appraisals
Uses protected_attributes on the master branch on rails 4.1.0

This fixes the errors on accept_nested_attributes_for
Fix broken specs on rails 4.1.0 on association matcher

Seems rails 4.1.0 treats has_and_belongs_to_many as a has_many :through
More info on:

https://github.com/rails/rails/issues/12582
http://edgeapi.rubyonrails.org/classes/ActiveRecord/Reflection/ClassMethods.html#method-i-reflect_on_association
Add 4.1.0 beta testing for #408