Don't encourage usage of `columns_hash`

As discussed in https://github.com/plataformatec/simple_form/pull/1094,
we should not encourage usage of `columns_hash`, and instead provide an
alternate method to determine whether or not an attribute exists.

The language `attribute` was chosen over `column` since these are in the
`AttributeMethods` module.
Use the type object for sending JSON to the database
Add `Hash#map_values` to ActiveSupport

Didn't get a chance to convert existing code, I'll skim through the code
base to make use of this later this afternoon.
Merge pull request #15819 from sgrif/sg-hash-map-values

Add `Hash#map_values` to ActiveSupport to simplify a common pattern
Simplify creation of default attributes on AR instance

`AttributeSet#dup` has all the behavior we need.
Merge pull request #15979 from sgrif/sg-json-quoting

Use the type object for sending JSON to the database
Use `Hash#transform_values` to clean up `AttributeSet`
Merge pull request #15982 from sgrif/sg-attr-set-map-values

Use `Hash#transform_values` to clean up `AttributeSet`
Use the type object when sending point columns to the DB
Merge pull request #15976 from sgrif/sg-attribute-exists

Don't encourage usage of `columns_hash`
Merge pull request #15983 from sgrif/sg-inline-point

Use the type object when sending point columns to the DB
Remove array workaround in PG quoting

We no longer need to do fancy legwork to make sure arrays use a type
object, now that schema methods use a real type object.
Remove unused `array_member` from PG quoting for HStore columns

Hstore no longer needs additional quoting to be used in an array, the
array type handles it sufficiently.
Merge pull request #15978 from sgrif/sg-pg-array-member

Remove unused `array_member` from PG quoting for HStore columns
Merge pull request #15977 from sgrif/sg-remove-array-hack

Remove array workaround in PG quoting
Merge pull request #15981 from sgrif/sg-simplify-defaults

Simplify creation of default attributes on AR instance
Update documentation on STI change handling

Documenting a potential source of confusion about how STI classes handle changes.
Merge pull request #15987 from jamesprior/patch-2

Update documentation on STI change handling
Move STI docs off of the main Base document, leaving a note
Fix 10.3 invite_email.body assert_match example.

Currently there is no implicit conversion for Mail::Body to string
therefore .to_s must be applied. This is exampled in 10.2.2.