Use a bound parameter for the "id = " portion of update statements

We need to re-order the bind parameters since the AST returned by the
relation will have the where statement as the first bp, which breaks on
PG.
Add a test case for range type casting

We support this behavior, but have no tests which assert that type
casting actually occurs.
Don't duplicate predicate building logic in Relation finders
Merge pull request #17483 from pabloh/optimize_gsub_calls

Call gsub with a Regexp instead of a String for better performance
Merge pull request #17469 from rishijain/update_docs_2

added punctuations, and role of queue_adapter module [ci skip]
Tiny documentation styling fixes [ci skip]
Add a section about job testing [ci skip]

* Cover lower level job testing (assertions about the execution of the
  job itself).
* Add a table with the custom assertions provided by Active Job's
  `TestHelper` module.
* Add an example testing job queuing inside a model
Pass the `SelectManager`, rather than the AST when querying w/ Relation

Arel specifically handles `SelectManager`, with the same logic we're
currently performing. The AST is `Enumerable`, which Arel looks for
separately now.
Deprecate `sanitize_sql_hash_` methods on ActiveRecord

These appear to be implementation relics of times past. They duplicate
the logic in Relation, and are no longer used internally.
Revert deprecation of `sanitize_sql_hash_for_assignment`

This method is still used by `update_all`
Handle `RangeError` from casting in `find_by` and `find_by!` on Relation

We should not behave differently just because a class has a default
scope.
Add an `assert_deprecated` for `sanitize_sql_hash_for_conditions`
Revert "Replace String index juggling with Pathname goodness in db:fixtures:load"

This reverts commit 482fdad5ef8a73688b50bba3991dd4ef6f286edd.

Fixes #17237.
Add comment to point out String#[] is intentional
Avoid unnecessary allocations/calls
`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_/'
minor docs change [ci skip]
Merge pull request #17383 from rwz/string-remove

Make `String#remove` and `String#remove!` accept multiple arguments

Conflicts:
	activesupport/CHANGELOG.md
Merge pull request #17487 from pabloh/avoid_allocations

Avoid unnecessary allocations and method calls
Delegate comparison operator to value