Perf: avoid dupes add fallback logic for coders
Reduce allocations when extracting AR models
Relation#merge should not lose readonly(false) flag.

The original code ignores the `false` value because `false.blank? # => true`.
Reduce Duration#inspect to a single series of transformations

* eliminates need for temp Hash

Also added a couple of examples to DurationTest to specify:

* duration can be defined with units out of order e.g.
  1.month + 1.year + 1.second + 1.day
* equality with a Fixnum works regardless of which operand is on which
  side of the operator
remove sentence err
Merge pull request #12199 from michaelminter/master

remove sentence err
fix deleting join models with no pk
Avoid empty transaction from setting has_one association on new record.
Revert "Add meta tag with charset information to application layout."

This reverts commit ba0407337e93c4ef55cef3472143f62e8a984a64.
Merge pull request #12194 from thedarkone/readonly-merger-fix

Relation#merge should not lose readonly(false) flag.
Merge pull request #12185 from SamSaffron/join_dep

Reduce allocations when extracting AR models
Whitespaces
Merge pull request #12135 from dylanahsmith/avoid_empty_transaction

Avoid empty transaction from setting has_one association on new record.

Conflicts:
	activerecord/CHANGELOG.md
Merge pull request #12200 from dchelimsky/simplify-duration-inspect-even-more

Reduce Duration#inspect to a single series of transformations
Merge pull request #12188 from SamSaffron/master

Perf: avoid dupes add fallback logic for coders
Check if the SQL is not a prepared statement

When the adapter is with prepared statement disabled and the binds array
is not empty the connection adapter will try to set the binds values and
will fail. Now we are checking if the adapter has the prepared statement
disabled.

Fixes #12023
Remove invalid comment

This is not valid anymore after 08477a651648ba4417ded128aa37b9ae0dcbc9ce
Fix inverted conditional

Oops, I should had run the tests
Replace JSON.load with JSON.parse, also removed the proc parameter

Since we are dealing with untrusted user input, we should not be
using JSON.load. According to the docs[1]:

BEWARE: This method is meant to serialise data from trusted user
input, like from your own database server or clients under your
control, it could be dangerous to allow untrusted users to pass
JSON sources into it. The default options for the parser can be
changed via the ::load_default_options method.

[1] http://www.ruby-doc.org/stdlib-2.0/libdoc/json/rdoc/JSON.html#method-i-load
Remove conditional adding a new method

At the point we want to add the reflection we already know the
reflection is of the AggregateReflection type so we can call a specific
method