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
Alignment
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.
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.
Merge pull request #10183 from jholton/fix_association_auto_save

autosave_association issue that occurs when table has unique index
Revert "Merge pull request #10183 from jholton/fix_association_auto_save"

This reverts commit e8727d37fc49d5bf9976c3cb5c46badb92cf4ced, reversing
changes made to d098e1c24bc145e0cc14532348436e14dc46d375.

Reason: it broke the mysql build
Merge branch 'master' of github.com:rails/rails
Merge pull request #10265 from wangjohn/documenting_actionview

Adding documentation to Renderer
Merge pull request #10267 from vipulnsward/use_destructive_method

symbolize_keys => symbolize_keys! on new hash; change sentence
fix respond_to? for non selected column

fixes #4208

If a query selects only a few columns and gives custom names to
those columns then respond_to? was returning true for the non
selected columns. However calling those non selected columns
raises exception.

    post = Post.select("'title' as post_title").first

In the above case when `post.body` is invoked then an exception is
raised since `body` attribute is not selected. Howevere `respond_to?`
did not behave correctly.

    pos.respond_to?(:body) #=> true

Reason was that Active Record calls `super` to pass the call to
Active Model and all the columns are defined on Active Model.

Fix is to actually check if the data returned from the db contains
the data for column in question.
Merge pull request #10211 from neerajdotname/4208

fix respond_to? for non selected column