Save has_one associations only if record has changes

Prevents save related callbacks such as `after_commit` being
triggered when `has_one` objects are already persisted and have no
changes.
Only use BINARY for mysql case sensitive uniqueness check when column has a case insensitive collation.
typos fixes
Tweak Configuring Guide language

the fact that Rails is multi-thread by default is not very relevant. see https://github.com/rails/rails/pull/13998 [ci skip]
:scissors:

This commit also addresses rails/docrails#169 and rails/rails#14159
Improve guide for Hash#transform_keys and related methods.

[skip ci]
Fix code alignment in duplicable? guide.

[skip ci]
Improve collision explanation for Hash#transform_keys.

Based on comments at
https://github.com/rails/docrails/commit/42417b0013819e573be9ffc5402e179003156e8e#commitcomment-5527251

[skip ci]
Replace map.flatten with flat_map in actionpack
Replace map.flatten with flat_map in activerecord
Replace map.flatten with flat_map in railties
Make CSRF failure logging optional/configurable.

Added the log_warning_on_csrf_failure option to ActionController::RequestForgeryProtection
which is on by default.
Do note remove `Content-Type` when `render :body`

`render :body` should just not set the `Content-Type` header. By
removing the header, it breaks the compatibility with other parts.

After this commit, `render :body` will returns `text/html` content type,
sets by default from `ActionDispatch::Response`, and it will preserve
the overridden content type if you override it.

Fixes #14197, #14238

This partially reverts commit 3047376870d4a7adc7ff15c3cb4852e073c8f1da.
Update doc for TagHelper.
[ci skip] Add "Low-Level Caching" part to "Caching With Rails"
Fix guide about `config.active_record.default_timezone` [ci skip]

Now the initial value of ActiveRecord.default_timezone is always :utc
Merge pull request #14296 from joker1007/fix_rails_guides_about_active_record_default_timezone

Fix guide about `config.active_record.default_timezone` [ci skip]
Merge pull request #14285 from sikachu/master-revert-render-body-remove-content-type

Do note remove `Content-Type` when `render :body`
Merge pull request #14257 from killthekitten/patch-1

Add "Low-Level Caching" part to "Caching With Rails" guide
unscope doesn't remove only the default_scope, but all of them.

[ci-skip]
Closes rails/rails#14294