Automatically maintain test database schema

* Move check from generated helper to test_help.rb, so that all
  applications can benefit
* Rather than just raising when the test schema has pending migrations,
  try to load in the schema and only raise if there are pending
  migrations afterwards

TODO:

- [x] We no longer need db:test:prepare and friends. Deprecate them.
- [x] Update docs/changelog
- [x] Add config option to allow users to opt-out of this behaviour
seems like a `ActiveRecord::Tasks::DatabaseTasks.purge` is missing here. /cc @jonleighton. See https://github.com/rails/rails/issues/15787 Is what we were doing under test namespace