Improve poor security recommendation in docs

As reported in #9960, the current documentation recommends an insecure practice for
key generation from a password (a single round of SHA-256). The modified documentation
uses ActiveSupport::KeyGenerator to perform proper key stretching.
Fixes skipping object callback filters

This allows you to skip callbacks that are defined by objects, e.g. for
`ActionController`:

    skip_after_filter MySpecialFilter

Previously this didn't work due to a bug in how Rails compared callbacks
in `Callback#matches?`. When a callback is compiled, if it's an object
filter (i.e. not a method, proc, etc.), `Callback` now defines a method on
`@klass` that is derived from the class name rather than `@callback_id`.
So, when `skip_callback` tries to find the appropriate callback to
remove, `Callback` can regenerate the method name for the filter
object and return the correct value for `Callback#matches?`.
Fix freeze applying to cloned objects

Previously, freezing a cloned ActiveRecord object froze the original
too. By cloning `@attributes` before freezing, we prevent cloned objects
(which in Ruby share state of ivars) from being effected by `#freeze`.

Resolves issue #4936, which has further information on this issue, as
well as steps to reproduce.

* Add a test case for `#freeze` not causing `cloned.frozen?` to be true.
* Clone @attributes before freezing in `ActiveRecord::Core`, then
  reassign the cloned, frozen hash to the frozen model's `@attributes`
  ivar.

/cc @steveklabnik
Support transactions in Migrator.run
Revert "Merge pull request #10043 from cconstantine/master"

This reverts commit 521035af530482d6d9ad2dae568eaeb0ab188e1c, reversing
changes made to 222011dbee842bbc60d3aaaa3145356b90a30fd1.

Reason: This broke the tests
Better ordering
HTML5 breaks
Indent around the scaffold loop
Alignment
Unindent attributes iteration in scaffold index template

Otherwise we get extra indent for the <td> elements due to the extra
spaces at the beginning of the lines, like this:

      <tr>
          <td><%= author.name %></td>
          <td><%= link_to 'Show', author %></td>
        <td><%= link_to 'Edit', edit_author_path(author) %></td>
Fix loading of fixtures when the column type is a postgres array of strings.

 - A string in an array of strings that has a quote char (') needs to have that quote char escaped if the array is getting wrapped in quote chars.
Adding documentation to actionview so that the big picture of the
renderer is clearer.
Reorganize MessageEncryptor

1) According to OpenSSL's documentation, cipher.random_iv must be called
   after cipher.encrypt and already sets the generated IV on the cipher.

2) OpenSSL::CipherError was moved to OpenSSL::Cipher::CipherError in
   Ruby 1.8.7. Since Rails 4 requires at least Ruby 1.9.3, support for
   the old location can be dropped.
Merge pull request #10235 from joergleis/patch-1

Reorganize MessageEncryptor
Merge pull request #10200 from calebthompson/ct-fix-freeze-freezing-cloned-models

Fix freeze applying to cloned objects
Merge pull request #10217 from mirasrael/make-migrator-run-transactional-4.0

Support transactions in Migrator.run

Conflicts:
	activerecord/CHANGELOG.md
Improve the error message
symbolize_keys => symbolize_keys! on new hash;

"There're" => There are for better readability
Merge pull request #10264 from cconstantine/master

Postgresql array columns don't properly escape single quote strings when loading fixtures
destroys association records before saving/inserting new association records

fixes bug introduced by  #3329
These are the conditions necessary to reproduce the bug:
- For an association, autosave => true.
- An association record is being destroyed
- A new association record is being created.
- There is a unique index one of the association's fields.
- The record being created has the same value as the record being
destroyed on the indexed field.

Before, the deletion of records was postponed until after all
insertions/saves.  Therefore the new record with the identical value in
the indexed field caused a non-unique value error to be thrown at the database
level.

With this fix, the deletions happen first, before the insertions/saves.
Therefore the record with the duplicate value is gone from the database
before the new record is created, thereby avoiding the non-uniuqe value
error.