Use __send__ instead of send
Update doc comments to provide example set
Add pry as development dependency
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.