Add `with_primary_key` to AssociationMatchers
Fix typo in have_many docs
Reorganize unit tests, part I

* Move spec/shoulda to spec/unit_tests/shoulda
* Move spec/support/*.rb to spec/support/unit_tests/{helpers,matchers}
* Move spec_helper.rb to unit_spec_helper.rb
Reorganize unit tests, part II

* Change 'spec' Rake task to 'spec:unit'
* Require unit_spec_helper.rb in unit tests, not spec_helper.rb
* Re-namespace files in spec/support/unit under UnitTests
* Files in spec/support/unit/helpers no longer automatically add
  themselves to RSpec - this happens in unit_spec_helper.rb
* Extract RecordWithDifferentErrorAttributeBuilder and
  RecordValidatingConfirmationBuilder to separate files
Add new RSpec acceptance tests to replace Cucumber
Remove Cucumber tests
Fix unit tests to use new acceptance stuff
Tell Travis how now to run the tests
Add Ruby 2.1.4 to Travis
Fix deprecation warning on Rails 3.2
Rename {ensure => validate}_length_of
Deprecate ensure_length_of for validate_length_of
Rearrange some things in NEWS
Fix another warning
Tweak allow_value failure message again

If no message is set and the matcher failed it formerly produced this
message:

    Expected errors  when attr is set to "some value"...

Now it produces this message:

    Expected errors when attr is set to "some value"...
Clean up acceptance tests a bit
Typo fix
Updating documentation for `validate_length_of`
Fix association matchers + namespaced class_name

Fix `class_name` qualifier for association matchers so that if the
model being referenced is namespaced, the matcher will correctly resolve
the class before checking it against the association's `class_name`.

Take these models for instance:

module Models
  class Friend < ActiveRecord::Base
  end

  class User < ActiveRecord::Base
    has_many :friends, class_name: 'Friend'
  end
end

Here, the `has_many` is referring to Models::Friend, not just Friend.
Previously in order to test the association, you had to write:

    describe Models::User do
      it { should have_many(:friends).class_name('Models::Friend') }
    end

Now, `have_many` will attempt to resolve the string given to
`class_name` within the context of the namespace first before treating
it as a reference to a global constant. This means you can now write
this:

    describe Models::User do
      it { should have_many(:friends).class_name('Friend') }
    end
Clear schema cache after each test

When running unit tests in a random order, some tests may fail as the
columns hash within a model may not be in sync with the database. This
is because the columns hash is cached outside of the model, so removing
the model from the object space and then recreating that model won't
clear the columns hash.