Merge pull request #17811 from mrnugget/fixes_nested_association_preloading

Adds preloaded_records method to NullPreloader - fixes #16070
Merge pull request #17866 from bogdan/default-form-builder

Bugfix config.action_view.default_form_builder option
Merge pull request #17867 from tgxworld/silence_minitest_plugins

Silence Minitest for plugin tests.
docs, bring back `ActiveRecord::Core` methods in the API. [ci skip]

This `# :nodoc:` had the effect of hiding every method that follows.
This meant that the API page for `ActiveRecord::Core` only contained
`configurations` and none of the following methods.

Furthermore this `# :nodoc:` had no effect on `maintain_test_schema`.
Those `mattr_accessor` inside the `included` block are not picked up
by rdoc.

/cc @zzak
Merge pull request #17860 from SamSaffron/fix_engine_backtrace

FIX: absolute_path may be nil for code added via instance_eval
Remove environment dependency for db:schema:load

All of the behavior :environment was giving (that db:schema:load needed)
was provided as well with :load_config.

This will address an issue introduced in
https://github.com/rails/rails/pull/15394. The fact that db:schema:load
now drops and creates the database causes the Octopus gem to have [an
issue](https://github.com/tchandy/octopus/issues/273) during the drop
step for the test database (which wasn't happening in db:schema:load
before). The error looks like:

    ActiveRecord::StatementInvalid: PG::ObjectInUse: ERROR:  cannot drop the currently open database
    : DROP DATABASE IF EXISTS "app_test"

Because of the timing, this issue is present in master, 4-2-*, and
4.1.8.

A note to forlorn developers who might see this: "Additionally" in a
commit message means you should have a separate commit, with a separate
justification for changes. Small commits with big messages are your
friends.
Merge pull request #17964 from carols10cents/improve-after-commit-argumenterror-message

Make error message clearer that :on requires a symbol, not a string
Allow custom handling of non-standard types in `time_zone_conversion`

PostgreSQL for example, allows infinity as a valid value for date time
columns. The PG type has explicit handling for that case. However, time
zone conversion will end up trampling that handling. Unfortunately, we
can't call super and then convert time zones.

However, if we get back nil from `.in_time_zone`, it's something we
didn't expect so we can let the superclass handle it.

Backport of 42418cfc94d1356d35d28d786f63e7fab9406ad6 and
65588b7463b227fd63f73b56b3df9d3ea5ab8996
Fixes #17971
tests, run `test_test.rb` with `RAILS_ENV=test`.

The tests to verify our testing setup used `RAILS_ENV=development`
to execute the tests. Let's keep it as close to a real-world setup
as possible.
Merge pull request #17739 from rails/bring_back_db_test_prepare

bring back `db:test:prepare`.
Conflicts:
	activerecord/CHANGELOG.md
	activerecord/lib/active_record/migration.rb

This also includes the initializer-order-fix for Active Record
configurations. This patch breaks oracle-enahnced-adapter.

/cc @rafaelfranca @yahonda
Merge pull request #16011 from xjlu/token_and_options

Improve token_and_options regex and test
Merge pull request #17186 from tgxworld/header_authentication_token

Allow authentication header to not have to specify 'token=' key.

Conflicts:
	actionpack/CHANGELOG.md