Fixes validate_uniqueness_of when scope is taken

Re-implement how to get previous value in order to test
validate_uniquenes_of matcher, after the scope changes. This way, new
value should not be taken by a previous record. Fixes #207.
Add comparison submatchers to validate_numericality_of

You can now use the following with validate_numericality_of:

* is_greater_than (corresponds to :greater_than)
* is_greater_than_or_equal_to (corresponds to :greater_than_or_equal_to)
* is_equal_to (corresponds to :equal_to)
* is_less_than (corresponds_to :less_than)
* is_less_than_or_equal_to (corresponds_to :less_than_or_equal_to)
Update NEWS in conjunction with #244
Add failing spec for presence matcher
Don't swap failure messages in ValidationMatcher

It's not entirely clear why these were being swapped to begin with, but
it was causing messages to appear backwards in the presence validation
matcher.

Other matchers using these methods were tested by hand and still output
correct messages -- they too may have been backwards before this fix.
Bump to version 2.2.0
Extract submatchers from AssociationMatcher

Refactored AssociationMatcher so that `#order`, `#through`, and `#dependent`
would be their own submatchers. This reduces some of the clutter in the main class,
especially as we continue expanding it. In addition, a few related tests were
modified so that they would check failure messages also.
Swap out protected for private methods in AssociationMatcher

This also includes some method rearranging so that each would fall under the
correct scope.
Replace instance variables with readable attributes in AssociationMatcher
Create a rescue_from matcher for ActionController

This matcher tests that the controller has been set up to rescue from a
specific exception with the ActiveSupport::Rescuable#rescue_from method.
It supports checking for a specific method as well.
Add support for counter_cache option in belongs_to associations