Revert 561ac3e2f0c9b717114f7452597062cf32584316

(Change `validate_uniqueness_of_matcher` to give non-null columns
default values)

This sounds good in theory, but we cannot choose default values that
make sense in every single context. For instance, if the column only
accepts certain values, then a default value must be chosen which is one
of those values. There is no way we can know this. Instead of making
`validate_uniqueness_of` magical, we should insist that people
create a record that has the proper attributes with the proper values
before using `validate_uniqueness_of`.
Add missing test dependences to Appraisals

Since we no longer install dependencies inside of the Rails app that is
generated, we have to all of the dependencies that the app would install
inside of the appropriate Appraisals.

This was mostly straightforward except for some workarounds with the
turn gem:

* Rails 3.1 requires two versions of turn depending on which Ruby
  version you're using. On 1.9.2, it uses turn 0.9.2; after 1.9.2, it
  uses ~> 0.9.3. To accommodate this we have to have two versions of the
  Rails 3.1 appraisal which declare the different turn versions.
* Rails 3.1 also loads the turn gem even if, in the Gemfile for the
  app, turn is declared with `require: false`. This causes a problem
  while running our tests because turn actually requires
  minitest/autorun, which adds a hook so when Ruby exits, Minitest tests
  are run. Because we're already using RSpec, Minitest will try to run
  RSpec files as Minitest files. Unfortunately there's no way to shut
  off minitest/autorun after it's been required, so we have to
  monkey-patch Minitest's #run method so it's a no-op.