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.