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`
Use TS::Cache instead plain Hash in TimeZone.

Plain ruby Hashes are not thread safe.
Unify AS::TZ's lazy init maps.

There's no point in having 2 almost identical (@lazy_zones_map and @zones_map) lazy initialized TZ instance caches.
Remove AS::TZ.lookup(name).

The method doesn't really make much sense (find_tzinfo will succeed for any imput provided).
Add regression test for IpSpoofAttackError issue

See #10780
Move Rack::Cache after AD::Static in the stack
Update README.rdoc [ci skip]

Highlighted code
Update commands.rb content in initialization guide

[ci skip]
Add section for command_tasks in initialization guide

[ci skip]
Change syntax format for example returned values

According to our guideline, we leave 1 space between `#` and `=>`, so we
want `# =>` instead of `#=>`.

Thanks to @fxn for the suggestion.

[ci skip]
Fix RailsServer#start content in initialization guide

[ci skip]
[ci skip] Replace #=> with # =>
Correct guide relating MiddlewareStackProxy with Enumerable

[ci skip] Enumerable.instance_methods &
Rails::Configuration::MiddlewareStackProxy.instance_methods # =>
[:as_json]

MiddlewareStackProxy does not share any notable methods with Enumerable.
Remove outdated guide on using rack builder w/o rails middleware

[ci skip]
Fix broken Wikipedia link.
Update action_controller_overview.md [ci skip]

Code style adherence
The option is called encode_big_decimal_as_string [ci-skip]
syntax error joining tables

syntax error joining tables
syntax error joining/including models

syntax error joining/including models
Revert last two commits mistakenly changing join/include syntax

---

Revert "syntax error joining/including models"

This reverts commit ac35f72f30c47298a20a90c8c537db888b463bbb.

---

Revert "syntax error joining tables"

This reverts commit c365986b48c3e8bc8c7f3fa6a8521616ed5dc138.

---

Comments:

https://github.com/rails/docrails/commit/c365986b48c3e8bc8c7f3fa6a8521616ed5dc138#commitcomment-4630684