Remove composed_of special case from multi-parameter attributes

As we move towards removing the `klass` method from `column`, the else
clause as it stands right now will become the only case.
Merge pull request #15551 from sgrif/sg-numeric-types

Don't mess with `_before_type_cast` for numeric types
Merge pull request #15552 from sgrif/sg-remove-klass-special-case

Remove composed_of special case from multi-parameter attributes
eliminate more wasteful allocations
Removed unused `klass` definitions from types

Only `Date` and `Time` are handled.
Merge pull request #15554 from sgrif/sg-klass

Removed unused `klass` definitions from types
Unwrap another html_escape

/cc @tenderlove
Merge pull request #15542 from Gaurav2728/gaurav-remove_shutdown_link

remove rubyforge.org that was shut down [ci skip]
[ci skip] Fix capitalization
Merge pull request #15555 from akshay-vishnoi/doc_changes

Fix capitalization
Merge branch 'master' of github.com:rails/docrails
copy edits [ci skip]
Revert "Convert StrongParameters cache to a hash. This fixes an unbounded"

We cannot cache keys because arrays are mutable. We rather want to cache
the arrays. This behaviour is tailor-made for the usage pattern strongs
params is designed for.

In a forthcoming commit I am going to add a test that covers why we need
to cache by value.

Every strong params instance has a live span of a request, the cache goes
away with the object. Since strong params have such a concrete intention,
it would be interesting to see if there are actually any real-world use
cases that are an actual leak, one that practically may matter.

I am not convinced that the theoretical leak has any practical consequences,
but if it can be shown there are, then I believe we should either get rid of
the cache (which is an optimization), or else wipe it in the mutating API.

This reverts commit e63be2769c039e4e9ada523a8497ce3206cc8a9b.
adds a regression test for the strong params converted arrays cache

This is a regression test for 29844dd.
adds some details to the rationale of converted_arrays [ci skip]
Add array support when time zone aware attributes are enabled
Merge pull request #15556 from sgrif/sg-time-zone-aware-arrays

Add array support when time zone aware attributes are enabled
Don't query the database schema when calling `serialize`

We need to decorate the types lazily. This is extracted to a separate
API, as there are other refactorings that will be able to make use of
it, and to allow unit testing the finer points more granularly.
Rename `property` to `attribute`

For consistency with https://github.com/rails/rails/pull/15557
changelog for #15556 and credit @kuldeepaggarwal [Kuldeep Aggarwal]

This is a follow up to #15556

@kuldeepaggarwal did submit this patch way back (#13624).