cache_key consults updated_on timestamp if present

- Extract max timestamp retrieval for cache_key
- Update changelog for cache_key changes
Allow use of assert_template with the :file option.
This worked in Rails 3.2, but was a regression in 4.0.0.beta1
More helpful error message when instantiating an abstract class

Calling a literal ActiveRecord::Base.new raises NoMethodError,
since it ends up calling Class.abstract_class? which does not exist.
Similarly, instantiating an actual abstract class hits the database,
when conventionally it should immediately throw NotImplementedError.

ActiveRecord::Base can't be made abstract without breaking many,
many things, so check for it separately.
`validates_confirmation_of` does not override writer methods.
`has_secure_password` is not invalid when assigning empty Strings.

Closes #9535.

With 692b3b6 the `password=` setter does no longer set blank passwords.
This triggered validation errors when assigning empty Strings to `password`
and `password_confirmation`.

This patch only sets the confirmation if it is not `blank?`.
transactional migration test-case was broken.

The cleanup commit a85625d broke the test-case.
The schema was no longer modified so there was no
way to check that the rollback actually happened.
transactions can be turned off per Migration.

Closes #9483.

There are SQL Queries that can't run inside a transaction. Since
the Migrator used to wrap all Migrations inside a transaction there
was no way to run these queries within a migration.

This patch adds `self.disable_ddl_transaction!` to the migration to
turn transactions off when necessary.
CHANGELOG entry for improved singularizing of singulars.

Closes #9559.

The actual patch was added with #4719
Merge pull request #9581 from senny/9559_changelog_singularizing_singular

CHANGELOG entry for improved singularizing of singulars.
Typo in comment to ActionView::Resolver#find_all
Merge pull request #9585 from RKushnir/patch-1

Typo in comment to ActionView::Resolver#find_all
Merge pull request #9507 from senny/9483_migrations_without_transactions

Transactions can be turned off per Migration
`Connection#structure_dump` is no longer used. #9518

As of ccc6910c we use `mysqldump` to create the `structure.sql`.
The old `#structure_dump` code is still in AR but never used.

I removed all relevant parts from the code-base.
rake db:structure:dump warns when `mysqldump` is not in PATH.

Closes #9518.

The rake task used to fail silently and left an empty `structure.sql`.
It's confusing for users to get to the root of the problem.
The warning message tells them where to look.
Merge pull request #9538 from senny/remove_structure_dump

`Connection#structure_dump` is no longer used
Change useless tr to gsub
Merge pull request #9586 from robertomiranda/useless_tr

Change useless tr to gsub
debugger 1.4.0 works in Ruby 2.0
Remove regression test added in 0268b5d8cdc3c5a1337462135f0a326a2654ba1a

It was added because a regression caused by a712e08ebe21f6d8653a0e6602df2e0f5d40d9ca

Closes #9255
replace non-breaking spaces with normal spaces [ci skip]