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
Remove `DatabaseStatements#case_sensitive_equality_operator`. It has been deprecated already.
#type_cast - improve performance & readability
Checking no debugger on JRuby

fixes tests for JRuby
updating  options documentation for associations
removed unnecessary test case and improved test case for belongs_to having invalid  options
Merge pull request #13100 from akshay-vishnoi/f-refactor

#type_cast - improve performance & readability
Merge pull request #13099 from kamipo/remove_case_sensitive_equality_operator

Remove `DatabaseStatements#case_sensitive_equality_operator`. It has been deprecated already.
Merge pull request #13095 from kuldeepaggarwal/test-case-updation

removed unnecessary test case
Remove unused variable

This method is not using the block variable directly since it is calling
yield
Typo fix
Merge pull request #13102 from akshay-vishnoi/typo

Typo fix
Fix URL to robots.txt documentation
Merge pull request #13097 from arunagw/jruby-test-fixes

Skipping debugger inclusion test if JRuby
Merge pull request #13104 from christophemaximin/fix_robots_txt_link

Fix URL to robots.txt documentation [ci skip]
Improve Module#delegate documentation to tell that delegate don't work with private or protected methods. [ci skip]