Fix bug, when ':dependent => :destroy' option violates foreign key constraints, issue #12380
Moved explanation of `--mountable` option up

The example code uses `--mountable`. In previous version this was followed by an explanation of the `--full` option, which doesn't make sense. Later on in the text this is better explained. I moved this explanation up without repeating too much.
skip migration check if adapter doesn't support it
Prevent state leak.
Remove redundant code.
use name specified by 'as' for automatic inverse association to avoid reflecting on wrong association
fix bug in email with name example code

The display name in the email "to" field needs to be quoted otherwise
your email-sending service will fail when trying to deliver mail to
user's with commas in their name (i.e. John Smith, M.D.).
use Ruby for mocking
reduce calls to `named_host?`

`normalize_host` already calls `named_host?`, so there is no reason to
test `named_host?` again in the `extract_domain` method.
only extract domain from the options hash once
lookup subdomain from the options hash once, defaulting to true

if the subdomain wasn't specified, it's the same as if specifying
:subdomain as `true`, so we can default the value to `true` safely.
[ci skip] Correct output of #assert_not
only check named_host? once in normalize_host
Update test data which doesn't reflect expected usage

Topics call `serialize :content`, which means that the values in the
database should be YAML encoded, and we would only expect to receive
YAML strings to `update_column` and `update_columns`.
In tag helper, honor html_safe on array parameters; also make safe_join more similar to Array.join by first calling flatten.
Merge pull request #15672 from sgrif/sg-topics-content

Update test data which doesn't reflect expected usage
Merge pull request #15666 from akshay-vishnoi/doc_changes

Correct output of #assert_not
Merge pull request #15667 from samdec/mailer_doc_bug_fix

fix bug in email with name example code
Merge pull request #15654 from pdg137/master

In tag helper, honor html_safe on arrays; also make safe_join more similar to Array.join
Fix performance regression on preloading HABTM associations

We'd spend a lot of time calling `hash` and `eql?` on the join model,
which has no primary key. Calling `id` with no primary key is a really
slow way to get back `nil`, so we can improve the performance there.
However, even with the escape clause, we *still* weren't getting high
enough performance, as we were checking the primary key too much. `hash`
will always return `nil.hash` for records with no id, and `==` will
always return `false`. We can optimize those cases in the HABTM join
model.