Fix that a collection proxy could be cached before the save of the owner, resulting in an invalid proxy lacking the owner’s id.

Absent this fix calls like: owner.association.update_all to behave unexpectedly because they try to act on association objects where
owner_id is null.

more evidence here: https://gist.github.com/Empact/5865555
```
Active Record 3.2.13
-- create_table(:firms, {:force=>true})
   -> 0.1371s
-- create_table(:clients, {:force=>true})
   -> 0.0005s
1 clients. 1 expected.
1 clients updated. 1 expected.
```

```
Active Record 4.0.0
-- create_table(:firms, {:force=>true})
   -> 0.1606s
-- create_table(:clients, {:force=>true})
   -> 0.0004s
1 clients. 1 expected.
0 clients updated. 1 expected.
```
`secret_token` is now saved in `Rails.application.secrets.secret_token`

- `secrets.secret_token` is now used in all places `config.secret_token` was
  - `secrets.secret_token`, when not present in `config/secrets.yml`,
    now falls back to the value of `config.secret_token`
  - when `secrets.secret_token` is set, it over-writes
    `config.secret_token` so they are the same (for backwards-compatibility)
  - Update docs to reference app.secrets in all places
    - Remove references to `config.secret_token`, `config.secret_key_base`
- Warn that missing secret_key_base is deprecated
- Add tests for secret_token, key_generator, and message_verifier
  - the legacy key generator is used with the message verifier when
    secrets.secret_key_base is blank and secret_token is set
  - app.key_generator raises when neither secrets.secret_key_base nor
    secret_token are set
  - app.env_config    raises when neither secrets.secret_key_base nor
    secret_token are set
- Add changelog

Run focused tests via
ruby -w -Itest test/application/configuration_test.rb -n '/secret_|key_/'
Time includes DateAndTime::Zones acts_like(:time)
Fixes a bug found when running individual tests against #17217 after merging
Merge pull request #11694 from Empact/association-bind-values-not-updated-on-save

Fix that a collection proxy could be cached before the save of the owner, resulting in an invalid proxy lacking the owner’s id

Conflicts:
	activerecord/CHANGELOG.md
Merge pull request #17578 from codeodor/fix-17217-test-bug

Fix bug found when running individual tests against #17217 after merging
tiny code improvement in sqlite3 adapter:
  - remove unused method `supports_add_column?`
  - change additional restriction method to `valid_alter_table_type?`
  - fix code style
Merge pull request #17579 from aderyabin/cleanup_sqlite

Tiny improvement in sqlite3 adapter
add a Table#name accessor like TableDefinition#name
remove never called method `limited_update_conditions`
Merge pull request #17585 from aderyabin/remove_limited_update_conditions

remove never called method `limited_update_conditions`
dependencies.rb: keep the decorated #load and #require private [closes #17553]
Merge pull request #16535 from bf4/patch-1

Allow fallback to LegacyKeyGenerator when secret_key_base is not set but secrets.secret_token is
No need to sync config.secret_token and secrets.secret_token

Just prefer secrets over config
:scissors:
Merge branch 'rm-fix-secret-token-fallback'
Remove unnecessary double space

Replaces the following in two places:

```diff
-require ::File.expand_path('../config/environment',  __FILE__)
+require ::File.expand_path('../config/environment', __FILE__)
```
Make FlashHash#key? work with symbol and string

Closes #17586
Merge pull request #17580 from ccutrer/change_table_name

add a Table#name accessor like TableDefinition#name
Merge pull request #17047 from betesh/master

Time includes DateAndTime::Zones acts_like(:time)