Don't needlessly alphabetize columns for insert/update

This slightly simplifies the code, and reduces the number of times we
need to iterate over the attributes by one.
Revert "development.rb should mention available log levels"

This reverts commit 102ba5fd69f18c7d58d70247090fbdeadfc53ca1.

Reason: code/template changes cannot be made in docrails
Merge pull request #17477 from Adam89/ma-remove-redundant-require

Remove redundant require of file
Merge pull request #17463 from mrgilman/remove-index-from-substitute-at

Remove redundant substitute index when constructing bind values
Use bind values for joined tables in where statements

In practical terms, this allows serialized columns and tz aware columns
to be used in wheres that go through joins, where they previously would
not behave correctly. Internally, this removes 1/3 of the cases where we
rely on Arel to perform type casting for us.

There were two non-obvious changes required for this. `update_all` on
relation was merging its bind values with arel's in the wrong order.
Additionally, through associations were assuming there would be no bind
parameters in the preloader (presumably because the where would always
be part of a join)

[Melanie Gilman & Sean Griffin]
Fix test which failed in isolation

It was transitively relying on the vertex model being loaded
[ci skip] `Relation#bind` is not public API
Add link to API Documentation Guidelines

Link to the "English" section to specify American English be used for the Guides
[ci skip]
Merge pull request #17482 from djpowers/patch-1

Add link to API Documentation Guidelines [ci skip]
Correctly cast calculation results on PG

MySQL reports the column name as `"MAX(developer_id)"`. PG will report
it as `"max"`
Call gsub with a Regexp instead of a String for better performance
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.