Better docs for AV::RecordIdentifier

This commit intends to clarify the scope of ActionView::RecordIdentifier
methods `dom_id` and `dom_class`.

Most of the current documentation comes from da257eb8 (7 years ago) when
the decoupling of ActionView, ActiveRecord and ActiveModel was not a concern.

Since then, steps have been taken to reach such decoupling, especially
8ca17926 which duplicated ActionController::ModelNaming into
ActionView::ModelNaming explaining that:

> These are just a simple helpers for decoupling Active Model, so it does not
> make sense to extract it to Active Support, but the point is to decouple also
> Action View and Action Pack

As of today, ActionView::RecordIdentifier only includes `dom_id` and `dom_class`
so it makes sense to explicitly document those two methods, and leaving the
details of helpers like `div_for` in the corresponding files.

Moreover, I think it's important to mention in the documentation that
ActionView::RecordIdentifier **does not strictly depend on the ActiveRecord API**: any class `Post` implementing `post.to_key` and `post.model_name.param_key` will work.

[ci skip]
plugin's gemfile also needs tzinfo-data in Windows
Rely on the injectable type caster for `arel_table`

This API will require much less consuming code to change to accomodate
the removal of automatic type casting from Arel. As long as the
predicates are constructed using the `arel_table` off of an AR subclass,
there will be no changes that need to happen.
Extract an explicit type caster class
Fix failing tests
Pass a type caster when aliasing tables for joins
Remove all cases of manuallly wrapping `Arel::Nodes::Quoted`

This is no longer required now that we are injecting a type caster
object into the Arel table, with the exception of uniqueness
validations. Since it calls `ConnectionAdapter#type_cast`, the value has
already been cast for the database. We don't want Arel to attempt to
cast it further, so we need to continue wrapping it in a quoted node.
This can potentially go away when this validator is refactored to make
better use of `where` or the predicate builder.
Require Arel 7.0.0.alpha
Ensure `first!` and friends work on loaded associations

Fixes #18237
Remove some warning with Ruby 2.2
Merge pull request #18240 from shunsukeaida/add_tzinfo_data_to_plugin_gemfile

plugin's gemfile also needs tzinfo-data in Windows
Un-inline if statement

The single line was long enough that it rendered on two lines,
causing the example to look like syntactically invalid code.
Merge pull request #18243 from JoshCheek/mailer_guide_code_example

Guide for Action Mailer Basics: Un-inline if statement
Removed Object#itself as it's implemented in ruby 2.2
Rephrase functional testing in its relation to Rails Controller Unit Testing.
[ci skip]
Merge pull request #18244 from cristianbica/remove-object-itself

Removed Object#itself as it's implemented in ruby 2.2
Document the include_all_helpers config setting.

This config setting has been available for quite a while but was not
documented.
Merge pull request #18246 from aprescott/document-include_all_helpers-setting

Document the include_all_helpers config setting
Compare http request type with test equivalent methods, and application use-cases.

Briefly explain difference between Functional and Request type tests. [ci skip]
Rephrase Four Hashes of the Apocalypse [ci skip]