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
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.