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.
Fix minor issues with the README
Use ActiveSupport delegation over Ruby Forwardable

The delegation style found in the AssociationMatcher
is an ActiveSupport style; requiring `forwardable`
without extending it does not add delegation support.
Move ValidateNumericalityOf submatchers to a subfolder
Updates RailsShim to be explicit about which Rails pieces it needs
Include instructions for non-Rails apps in README

Courtesy @fj.
Add Appraisal for Rails 4.0.1
Make `order` option Rails 4.0.1-compatible

The way that we figure out whether the value which is passed to `order`
is the same as the `order` that the association was defined with is by
creating an ActiveRecord::Relation object from the given `order` and
comparing it with the Relation stored under the association.
Specifically, every time you call `order` on a Relation, it appends the
value you've given to an internal `order_values` array, so we actually
access this array and compare the two between the two Relation objects.

Currently we assume that this `order_values` array is an array of
strings, so it's very easy to compare. That was valid pre-Rails 4.0.1,
but it looks like as per [these][1] [commits][2], it's now possible for
`order_values` to be an array of Arel nodes. So, to make a proper
comparison, we have to convert any Arel nodes to strings by calling
 #to_sql on them.

[1]: https://github.com/rails/rails/commit/d345ed4
[2]: https://github.com/rails/rails/commit/f83c9b10b4c92b0d8deacb30d6fdfa2b1252d6dd
Add validates_absence_of matcher
Update deprecated matcher protocol for RSpec 3.

The methods failure_message_for_should and failure_message_for_should_not
have been updated to failure_message and failure_message_negated respectively.
Alias to the old methods to remain backwards compatibility with RSpec 2.
Update NEWS
Bump to version 2.5.0
Convert to 1.9 hash syntax
Reject associations when class is not defined
Changed MIT License copyright year to 2014
We encourage you to use Shoulda w/ Test::Unit

* Hat tip: @billy2g
* Also, tweak words about non-Rails apps
README small fixes.