Fix migrations with enable_extension

When using ActiveRecord::Base.table_name_prefix and/or
table_name_suffix, extension names got the same treatment as table names
when running migrations. This led to migrations that tried to call, for
example, enable_extension("prefix_hstore") on the connection.
Hash#deep_*_keys(!) recurse into nested arrays.

Following methods now recursively transform nested arrays, too.

* Hash#deep_transform_keys
* Hash#deep_transform_keys!
* Hash#deep_stringify_keys
* Hash#deep_stringify_keys!
* Hash#deep_symbolize_keys
* Hash#deep_symbolize_keys!
Check authentication scheme in Basic auth

`authenticate_with_http_basic` and its families should check the authentication
schema is "Basic".

Different schema, such as OAuth2 Bearer should be rejected by basic auth, but
it was passing as the test shows.

This fixes #10257.
Run login_procedure only when the auth_scheme is valid
Refactor AR's validations_test.rb

The `:context` switch feature is implemented in
ActiveRecord::Validations#valid? method, so we should rename the test
names, and execute `valid?` in the test.

Change test name in AR's validations_test.rb

This test is testing save method's code
Fix serialized field returning serialized data after update_column
Fixes Issue #13466.

Changed the call to a scope block to be evaluated with instance_eval.
The result is that ScopeRegistry can use the actual class instead of base_class when
caching scopes so queries made by classes with a common ancestor won't leak scopes.
Allow custom asset host to be passed in asset_url
Improve documentation for asset_url

Updated CHANGELOG.md with entry about :host in asset_url
Fixed duplicate subscribers in ActiveSupport::Subscriber

ActiveSupport::Subscriber no longer creates multiple subscribers when
you redefine a method.
Add controller and action name to the instrumentation payload
adding complete message in documentation [ci skip]
Merge pull request #15058 from Gaurav2728/gaurav-doc_message

adding complete message in documentation [ci skip]
docs, make `ActionNotFound` public API. [ci skip]

This is a follow up to #15058.

This exception is regularly raised during development. This means it will enter
the user realm. We should provide an API page to show that this exception is public API.

/cc @schneems
Make TimeZone#parse behave more like Time#parse.

Namely, if the mday is omitted but any other upper components are, then instead
of supplying the mday from the current time, it defaults to 1.
Tidy up implementation of #15010
Replace :base with :in [ci skip]
Merge pull request #15059 from marcioj/patch-1

Replace :base with :in [ci skip]
Merge pull request #10662 from take/change-test-name-for-ActiveRecord--Validations#valid-

Refactor AR's validations_test.rb
Remove redundant tests method.