Move pk initialization logic onto `AttributeSet`

Better encapsulates its internals from `ActiveRecord::Base`.
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
Add `:all` argument to `count` in `reset_counters`

Prior to this fix, if an association had a scope with a `select`,
calls to `reset_counters` would generate invalid SQL and throw:

ActiveRecord::StatementInvalid: [$DB_ADAPTER]: wrong number of
arguments to function COUNT()

References #10710, #13648