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.
Merge pull request #15665 from sgrif/sg-id-perf

Fix performance regression on preloading HABTM associations
Defer to super, rather than re-implementing Object#hash
Use a conditional rather than early return in `id`
Merge pull request #15676 from sgrif/sg-object-hash

Defer to super, rather than re-implementing Object#hash
Merge pull request #15677 from sgrif/sg-less-imperative-pk

Use a conditional rather than early return in `id`
Add a test to ensure we don't get a performance regression on #hash