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
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