Rewrite the README

* Add comprehensive examples for every method in the API
* Change Shoulda references to shoulda-matchers
* Mention that we use SemVer
Change `validate_uniqueness_of_matcher` to use 'a' as test value

Previously `validate_uniquness_of_matcher` created records with a
string of 16 characters in length. If the column under test test
had a limit of fewer than 16 characters it would fail.
Use 1.9 style hashes in `validate_uniqueness_of_matcher` files
Fixed README syntax error for :accepts_nested_attributes_for
Association matchers now support :source option
Auto-retry `bundle install` when Travis runs tests

`bundle install` doesn't always work -- sometimes it runs into errors
making HTTP requests, for whatever reason. This will cause Travis to
fail which is pretty annoying.

* Travis supplies an executable called `travis_retry` which will
  automatically retry the command up to 3 times before really failing.
  Tell Travis to use this when it runs `bundle install` before it
  runs tests.
* In spec_helper, we create a Rails app and use this within the
  test suite. This will also run `bundle install`. Unfortunately we
  can't use `travis_retry` for this as it's a function and is not
  available to us in Ruby-land, so use our own retry logic.
Refactor spec_helper

The code that sets up the blank Rails application we use for testing is
a little messy. Let's use an object to encapsulate this and then refer
to this object every time we access Rails.application.