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)
Pass the route name explicitly

Follow up to 212057b9. Since that commit, we need to pass the `route_name`
explicitly. This is one of the left-over cases that was not handled in that
commit, which was causing `use_route` to be ignored in functional tests.
Remove useless `only_path: true` in path helpers

We added a deprecation warning for these cases in aa1fadd, so these are now
causing deprecation warnings in the test output. AFAICT, in these two cases, the
option is not integral to the purpose of the test, so they can be safely removed
docs, minor changes in Active Job documentation. [ci skip]
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__)
```