Move pk initialization logic onto `AttributeSet`

Better encapsulates its internals from `ActiveRecord::Base`.
[ci skip] Changes some wording to better foreshadow what is coming up later.
This should prevent some anxiety readers may experience when the doc goes into something different than what it just explained. Also clarifies a statement about priority in engines and application environments

[ci skip] fixes double `the`

[ci skip] more clarifications

[ci skip] changes from tics to quotes
Merge pull request #16015 from sgrif/sg-ensure-initialized

Move pk initialization logic onto `AttributeSet`

Conflicts:
	activerecord/lib/active_record/attribute_set.rb
automatically include ActiveModel::Validations when include ActiveModel::SecurePassword
Merge pull request #16024 from aditya-kapoor/include-validations

automatically include ActiveModel::Validations when include ActiveModel::SecurePassword
`DateTime#to_f` now preserves fractional seconds.

Previously this method always returns `.0` in the fractional part. This commit
changes it to preserve the fractional seconds instead.

Fixes #15994.
Merge pull request #16001 from johnpaulashenfelter/jp_fix_datetime_to_f

`DateTime#to_f` now preserves fractional seconds.
Only automatically include validations when enabled

This is a follow up to #16024.
Fix escape_once double-escaping hex-encoded entities

(This is a manual merge of #9102)
The hex escape sequence can be of any length
Add CHANGELOG for c803b90
Change the JSON renderer to enforce the 'JS' Content Type

The controller can set the response format as 'JSON' before the renderer code be
evaluated, so we must replace it when necessary.

Fixes #15081
Merge pull request #16026 from lucasmazza/lm-respond-to-jsonp-fix

Change the JSON renderer to enforce the 'JS' Content Type
Fix typo in comment
Merge pull request #16029 from cade/fix_typo_in_comment

Fix typo in comment
Merge pull request #15941 from variousred/docrails-changes

[ci skip] Changes some wording to better foreshadow what is coming up later
Use the type object for type casting HStore columns
Do not rely on the column type when quoting infinity
Merge pull request #16034 from sgrif/sg-hstore-type-object

Use the type object for type casting HStore columns
Merge pull request #16036 from sgrif/sg-datetime-infinity

Do not rely on the column type when quoting infinity