Extract ActiveSupport::NumberHelper methods to classes

Due to the overall complexity of each method individually as well as the
global shared private module methods, this pulls each helper into it's
own converter class inheriting from a generic `NumberBuilder` class.

* The `NumberBuilder` class contains the private methods needed for each helper
method an eliminates the need for special definition of specialized private
module methods.
* The `ActiveSupport::NumberHelper::DEFAULTS` constant has been moved
into the `NumberBuilder` class because the `NumberBuilder` is the only
class which needs access to it.
* For each of the builders, the `#convert` method is broken down to
smaller parts and extracted into private methods for clarity of purpose.
* Most of the mutation that once was necessary has now been eliminated.
* Several of the mathematical operations for percentage, delimited, and
rounded have been moved into private methods to ease readability and
clarity.
* Internationalization is still a bit crufty, and definitely could be
improved, but it is functional and a bit easier to follow.

The following helpers were extracted into their respective classes.

* `#number_to_percentage` -> `NumberToPercentageConverter`
* `#number_to_delimited` -> `NumberToDelimitedConverter`
* `#number_to_phone` -> `NumberToPhoneConverter`
* `#number_to_currency` -> `NumberToCurrencyConverter`
* `#number_to_rounded` -> `NumberToRoundedConverter`
* `#number_to_human_size` -> `NumberToHumanSizeConverter`
* `#number_to_human` -> `NumberToHumanConverter`
Add regression test for IpSpoofAttackError issue

See #10780
Add `rake test:all`, `rake test:all:db` to guide

[ci skip]
Typo and grammatical fixes [ci skip]
Merge pull request #11466 from jetthoughts/updated_tesing_guides

Fix `rake test` description in the guides [ci skip]
Merge pull request #13117 from akshay-vishnoi/typo

Typo and grammatical fixes [ci skip]
`mail()` without arguments is a getter for the current mail.

This behavior is documented in our guides (http://edgeguides.rubyonrails.org/action_mailer_basics.html#action-mailer-callbacks)
but was broken in the past. This commit short curcuits
the `mail` method if:

  1. mail() was previously called
  2. no headers are passed
  3. no block is passed

Closes #13090.

/cc @pixeltrix
added missing require

we’re using .delegate and should require it.
Merge pull request #13134 from rubiii/patch-1

added missing require to active_support/tagged_logging
activemodel isn't a runtime dependency for actionview
Make the tests break again

We need to fix this test
Unify cattr and mattr accessors declarations
Make the release notes consistent [ci skip]

Conflicts:
	guides/source/4_1_release_notes.md
:scissors:

[ci skip]
Use alphabetic order

[ci skip]
Add documentation about the Action Dispatch salt configuration

[ci skip]
Wrap 80 columns [ci skip]
Merge pull request #11197 from gsamokovarov/unify-mattr-cattr

Unify cattr and mattr accessors declarations
Make ActionView::Tags loading tread safe
Remove deprecated cattr_* requires