Prevent state leak.
Remove redundant code.
remove unnecessary substitution for space in ActionView::Helpers#debug
Always update counter caches in memory when adding records

Before, calling `size` would only work if it skipped the cache, and
would return a different result from the cache, but only if:

- The association was previously loaded
- Or you called size previously
- But only if the size was 0 when you called it

This ensures that the counter is appropriately updated in memory.
Don't save through records twice

If the through record gets created in an `after_create` hook that is
defined before the association is defined (therefore after its
`after_create` hook) get saved twice. This ensures that the through
records are created only once, regardless of the order of the hooks.
Don't use `Column` for type casting in Relation calculations
Don't use column object when calculating type cast defaults

Moves towards removing type casting knowledge from the column entirely
Don't use column object for type casting in `quoting`

We're never going to be able to use the attribute object here, however,
so let's just accept the ugly demeter violation here for now.

Remove test cases which were either redundant with other tests in the
file, or were actually testing the type objects (which are tested
elsewhere)
Don't rely on the column for type casting reflections
Create custom errors page on ActionController guides

[ci skip]
Further simplify `changed?` conditional for numeric types

`Type::Integer.new.type_cast('') # => nil`, we do not need a special
case to handle this, `nil => ''` already returns false. The only case we
need to handle is `0 => 'wibble'` should be changed, while `0 => '0'`
should not.
excerpt() now accepts regular expression instances as phrases.
highlight() now accepts regular expressions as well.
'TextHelper#highlight' now accepts a block to highlight the matched words.

The helper will yield each matched word, and you can use this instead of the
':highlighter' option for more complex replacing logic:

  highlight('My email is me@work.com', EMAIL_REGEXP) { |m| mail_to(m) }
  # => 'My email is <a href="mailto:me@work.com">me@work.com</a>'
Merge pull request #15820 from lucasmazza/lm-except-highlight-tweaks

highlight/except support for regular expressions and blocks.
Merge pull request #15808 from maurogeorge/guides-custom-errors-page

Create custom errors page on ActionController guides
Add to guides app and helper objects on command line

[ci skip]
Introduce an object to aid in creation and management of `@attributes`

Mostly delegation to start, but we can start moving a lot of behavior in
bulk to this object.
Merge pull request #15818 from sgrif/sg-attribute-set

Introduce an object to aid in creation and management of `@attributes`
Merge pull request #15450 from aditya-kapoor/remove-nbsp-debug

remove unnecessary gsub for space in ActionView::Helpers#debug