Autosave callbacks shouldn't be `after_save`

068f092ced8483e557725542dd919ab7c516e567 registered autosave callbacks
as `after_save` callbacks. This caused the regression described in #17209.

Autosave callbacks should be registered as `after_update` and
`after_create` callbacks, just like before.

This is a partial revert of 068f092ced8483e557725542dd919ab7c516e567.

Fixes #17209.
Merge pull request #17232 from Agis-/issue-17209

Autosave callbacks shouldn't be `after_save` callbacks
add length to ActiveRecord::Result
Don't need to account turbolinks cookies in get request.

It was changed to not set the cookie in get requests at
https://github.com/rails/turbolinks/commit/62cc3db457ad9745ccda047dd43ab84fb3d89707.

Related with dcb05f26.
Always use latest turbolinks
measure record instantiation time in AS::Notifications

emit an event when we instantiate AR objects so we can see how many
records were instantiated and how long it took
Remove duplicate error message "Couldn't find..."

This commit removes the duplication of the error message:

> Couldn't find #{@klass.name} with [#{arel.where_sql}]

introduced in #15791 by adding a private method `find_nth!` that
deals with all the method like `first!` and `second!`.
Merge pull request #17251 from claudiob/remove-duplicate-exception

Remove duplicate error message "Couldn't find..."
Clarify `#update_all` doc about value processing

This clarify the fact that `#update_all` doesn't type-cast passed
values and that these values are written as-is in the SQL DB.

Fix #17242

[ci skip]
Add #key? to ActiveModel::Errors

Mirror Ruby's Hash#key?
Merge pull request #17252 from Bounga/update_all_doc_clarification

[ci skip] Clarify `#update_all` doc about values processing
Merge pull request #17253 from gshutler/activemodel-errors-key

Add #key? to ActiveModel::Errors
Improve Journey compliance to RFC 3986

The scanner in Journey fails to recognize routes that use literals
from the sub-delims section of RFC 3986.

This commit enhance the compatibility of Journey with the RFC by
adding support of authorized delimiters to the scanner.

Fix #17212
ActionController::InvalidCrossOriginRequest fails with 422 instead of 500
Fixes #15967
Merge pull request #17220 from Bounga/fix_journey_rfc_3986_compliance

Improve Journey compliance to RFC 3986
Use `#tr` instead of `#gsub`

`#tr` is more efficient than `#gsub` and can be used as a drop in
replacement in this context.
break cache if we're inside a "scoping" call. fixes #17052

For now, we don't want to take "scoping" calls in to account when
calculating cache keys for relations, so just opt-out.
make sure cache is not used for collection assocations too

follow up for #17052
:scissors: duplicated `require`s
Make the config actually copyable

The intention here is to make the required config copy-able from the console/logs, so add a newline at the end of the message to make that easier. (Otherwise it would be `... raise_in_transactional_callbacks = true (called from...`.)