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
Move dev dependencies to Gemfile

Currently some dev dependencies are in the Gemfile, and some are in the
gemspec. The dependencies in the Gemfile are there because they are
using Bundler-specific options, so there is a legitimate reason for them
to be there, however, it's confusing to have gems in two places. So the
common denominator is to have them in the Gemfile.
Extract examples in README to inline documentation
Generate docs using YARD
Publish new docs when releasing a new version