Inflector irregular singularize rules
Adding Back Rails::Engine::Railties#engines

Removing it breaks functionality with gems such as Thinking Sphinx.
This restores it with a deprecation warning. Closes #8551
Simplify code in AS json encoder
remove 'update' duplications
update assets guide code styling

* 1.9 hash syntax
* proper formatting around one line blocks
* do-end for multiline blocks
Clarified the minute option on DateTime#change
Update guides/source/active_record_basics.md
Fix .update_all and .delete_all when using a condition on a joined table
in a default_scope.

`Model.joins(...).where(condition_on_joined_table).update_all` /
`delete_all` worked, but the same operation implemented with a
default_scope generated a SQL error because ActiveRecord ignored the
join but implemented the where condition anyways.
Update engine application layout file path
Fix typo in guides/source/engines.md
Fix typo in guides/source/engines.md
`CollectionAssociation#empty?` respects newly builded records
Fix simple expression
fix reference to ActiveSupport::ProxyObject
Improves documentation about Fragment Caching. [ci skip]

Adds documentation for:
- Aggregate cache keys,
- using an ActiveRecord model as cache key and
- Russian Doll Caching.
fix history
Revert "Improves documentation about Fragment Caching. [ci skip]"

This reverts commit 814c9875ec4cf01e1348d1ab1c9d12eee5a9adac.
Revert "fix history"

This reverts commit dd319600010f4fdc4fac58e5b192bb96fe0d3d7e.
revert to 814c9875ec4cf01e1348d1ab1c9d12eee5a9adac
removes spurious file pushed in cc585c8