Added queue_name_delimiter attribute.

- Added ActiveJob::Base#queue_name_delimiter to allow for
  developers using ActiveJob to change the delimiter from the default
  ('_') to whatever else they may be using (e.g., '.', '-', ...).

- Updated source guide to include a blurb about the delimiter.
Merge pull request #17039 from zv1n/add_prefix_delimiter

Added ability to configure the queue_name_prefix delimiter to ActiveJob::QueueName.
Call value methods when merging relations, rather than accessing keys

The change to accessing keys directly was originally added to allow
`merge` to take a hash. The implementation of `HashMerger` no longer
requires us to be doing so. Accessing the values directly makes it
impossible to change internal storage details, even if shim methods are
added temporarily
Fix uninitialized ivar warning in tests
Remove unneccessary default values from relation merger

The value methods will default to an empty array for us automatically
let's warn with heredocs

The current style for warning messages without newlines uses
concatenation of string literals with manual trailing spaces
where needed.

Heredocs have better readability, and with `squish` we can still
produce a single line.

This is a similar use case to the one that motivated defining
`strip_heredoc`, heredocs are super clean.
Implement #== for column

We shouldn't rely on reference equality of these objects in tests
Implement hash equality on column

The query cache uses bind values as hash keys. The current
implementation relies on reference equality for hash equality. This is
brittle, and can easily break in the future.
💣

We were relying on hash inequality in tests
Merge pull request #17421 from rails/warn-with-heredoc

let warn with heredocs
Add mysql and pg specific attributes to Column#== and hash
edit pass over all warnings

This patch uniformizes warning messages. I used the most common style
already present in the code base:

* Capitalize the first word.

* End the message with a full stop.

* "Rails 5" instead of "Rails 5.0".

* Backticks for method names and inline code.

Also, converted a few long strings into the new heredoc convention.
:nodoc: for abstract_mysql_adapter
Added 'tzinfo-data' if we are using jruby
fix MySQL enum type lookup with values matching another type. Closes #17402.

The MySQLAdapter type map used the lowest priority for enum types.
This was the result of a recent refactoring and lead to some broken lookups
for enums with values that match other types. Like `8bit`.

This patch restores the priority to what we had before the refactoring.

/cc @sgrif
Merge pull request #17423 from lukefx/jruby_windows_tzinfo

Added 'tzinfo-data' if we are using jruby
better example for tokenizer lambda [ci skip]

Splitting on whitespace makes more sense in the context of counting words in an
essay.
Merge pull request #17427 from dwo/master

better example for tokenizer lambda [ci skip]
Merge pull request #17411 from mcfiredrill/doc-change-column-default-abstract-mysql-adapter

document change_column and change_column_default for abstract_mysql_adapter [ci skip]
On larger screens the email preview iframe is being limited to a height of 800 pixels, and the full available screen size is not being used.