Merge pull request #15676 from sgrif/sg-object-hash

Defer to super, rather than re-implementing Object#hash
Merge pull request #15677 from sgrif/sg-less-imperative-pk

Use a conditional rather than early return in `id`
Add a test to ensure we don't get a performance regression on #hash
Merge pull request #15678 from sgrif/sg-test-hash

Add a test to ensure we don't get a performance regression on #hash
Add missing test cases for #assert_no_difference
[ci skip] BigDecimal#duplicable? returns false in 1.9.x
Merge pull request #15680 from akshay-vishnoi/doc_changes

[ci skip] BigDecimal#duplicable? returns false in 1.9.x
Set flash in test session when necessary.

`to_session_value` returns nil when empty.
Set the status before of setting the response body

The 401 status should be set first because setting the response body in
a live controller also closes the response to further changes.

Fixes #14229.
pg guide, minor copy edits
Fix parsed token value with header `Authorization token=`.
PG arrays should type cast user input

We guarantee that `model.value` does not change after
`model.save && model.reload`. This requires type casting user input for
non-string types.
Merge pull request #15686 from sgrif/sg-pg-int-arrays

PG arrays should type cast user input
Merge pull request #15683 from larrylv/fix-token-with-empty-value

Fix parsed token value with header `Authorization token=`.
Merge pull request #15682 from tgxworld/controller_test_process

Set flash in test session when necessary.
Introduce an Attribute object to handle the type casting dance

There's a lot more that can be moved to these, but this felt like a good
place to introduce the object. Plans are:

- Remove all knowledge of type casting from the columns, beyond a
  reference to the cast_type
- Move type_cast_for_database to these objects
- Potentially make them mutable, introduce a state machine, and have
  dirty checking handled here as well
- Move `attribute`, `decorate_attribute`, and anything else that
  modifies types to mess with this object, not the columns hash
- Introduce a collection object to manage these, reduce allocations, and
  not require serializing the types
Ensure we always define attribute methods
Specifically talking about Rake the library [ci skip]
Add links to RDoc back into API documentation guidelines [ci skip]
These were removed from #15542 unfortunately :(
Builder source code is still available on github [ci skip]
This was also removed from #15542