Don't remove mailer layouts files
Fix Sidekiq ActiveJob integration setup

* .connect on a Redis connection wasn't valid
* Reset logger after we're done testing for redis connection to avoid
  "closed stream" error when starting server for real from a fork
Deprecate `Class` handler in `PredicateBuilder`

Users should pass strings to queries instead of classes
Merge pull request #17825 from aripollak/fix-activejob-sidekiq-integration

Fix Sidekiq ActiveJob integration setup

Conflicts:
	activejob/test/support/integration/adapters/sidekiq.rb
Merge pull request #17797 from y-yagi/donot_delete_mailer_layouts

Don't remove mailer layouts files
Merge pull request #17916 from mrgilman/deprecate-class-handler

Deprecate `Class` handler in `PredicateBuilder`
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.
Remove deprecated behavior allowing nested arrays as query values
Merge pull request #17920 from calebthompson/dont-rely-on-environment-task-for-schema-load

Remove environment dependency for db:schema:load
Correctly handle multiple attribute method prefix/suffixes which match

Active Record defines `attribute_method_suffix :?`. That suffix will
match any predicate method when the lookup occurs in Active Model. This
will make it incorrectly decide that `id_changed?` should not exist,
because it attempts to determine if the attribute `id_changed` is
present, rather than `id` with the `_changed?` suffix. Instead, we will
look for any correct match.
Merge pull request #17919 from mrgilman/stop-supporting-nested-arrays

Remove deprecated behavior allowing nested arrays as query values