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?`.
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]
Refactored and removed unnecessary lines in the test case
Merge pull request #9596 from choudhuryanupam/master

Refactored the code to remove irrelevant lines
Merge pull request #9595 from senny/remove_non_breaking_spaces

replace non-breaking spaces with normal spaces [ci skip]
Merge pull request #9545 from senny/9535_secure_password_blank

`has_secure_password` is not invalid when assigning empty Strings
Merge pull request #9474 from HonoreDB/master

More helpful error message when instantiating an abstract class

Conflicts:
	activerecord/CHANGELOG.md
test case for `serialize` default values.

Closes #9110
Merge pull request #9105 from bemurphy/cache_key_updated_on

cache_key consults updated_on timestamp if present

Conflicts:
	activerecord/CHANGELOG.md
Merge pull request #9597 from senny/9110_serialized_not_null_default

test case for `serialize` default values.
Merge pull request #9464 from jcoyne/assert_template_file

Allow use of assert_template with the :file option.
Move AP changelog entry to the top [ci skip]
Fix hash spaces and use 1.9 style hash [ci skip]
Combine scope conditions using AND

Currently Post.active.inactive will result in Post.inactive since
the last where clause wins when scopes are merged.

This pull request will merge all scopes ( barring defaul scope)
using AND.

The default scope will be overridden if another scope acts on the
same where clause.

closes #7365
SQLite3 3.6.8+ supports savepoints

http://www.sqlite.org/lang_savepoint.html
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L130-L132