Refactor application of type decorators into an object
Merge pull request #15759 from sgrif/sg-extract-type-decorator

Refactor application of type decorators into an object
Promote time zone aware attributes to a first class type decorator

This refactoring revealed the need for another form of decoration, which
takes a proc to select which it applies to (There's a *lot* of cases
where this form can be used). To avoid duplication, we can re-implement
the old decoration in terms of the proc-based decoration.

The reason we're `instance_exec`ing the matcher is for cases such as
time zone aware attributes, where a decorator is defined in a parent
class, and a method called in the matcher is overridden by a child
class. The matcher will close over the parent, and evaluate in its
context, which is not the behavior we want.
Merge pull request #15760 from sgrif/sg-decorate-matching

Promote time zone aware attributes to a first class type decorator
Formatting fix in AS changelog [ci skip]
[ci skip] doc corrected : ActiveRecord::Base.connections to ActiveRecord::Base.configurations
Merge pull request #15765 from rahul100885/master

[ci skip] doc corrected : ActiveRecord::Base.connections to ActiveRecord::Base.configurations
fix typo in test method names. [ci skip]
add `bin/rake db:purge` task to empty the current database.
Move test teardown into `ensure` block.
Merge pull request #15768 from zuhao/refactor_activesupport_concern_test

Move test teardown into `ensure` block.