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.
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
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
Fix check for private_constant
Add allow_nil option to validate_numericality_of
Update numericality comarison matcher more accurate
Fix so that sticky header does not appear immediately
Fix test failure
Merge branch 'master' into ew-split-apart-readme

Conflicts:
	README.md
	lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb
	shoulda-matchers.gemspec