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
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.
Fixed a problem where `sum`, `size`, `average`, `minimum` and `maximum` used
with a grouping was not returning a Hash.
Reorganize ActiveRecord tasks [Arun Agrawal & Abd ar-Rahman Hamidi]
Updates reset_counters to allow counter name in params

Add support for counter name to be passed as parameter
on `CounterCache::ClassMethods#reset_counters`. This is
to be consistent with the other methods in the module
that all accept counter name.
Fix app generator test hanging.
Merge pull request #15150 from xtian/fix-railties-tests

Fix app generator test hanging.
Add missing tests for column type cast behavior
New applications should be created with json serializer

The fix introduced at 75ba7425f6d235f254c00a45a58f42e88f80301a were
missing this case.

To fix the original issue mentioned at that commit the correct is to
remove update_config_files from the command list since we should not run
both config_files command when creating a new application.

Tests were added to make sure everything is working fine.
Merge pull request #15149 from sgrif/sg-missing-tests

Add missing tests for column type cast behavior
Collected TimeZone's class methods together

Just moved class methods up in file and moved `def self.` methods into `class << self`.
Merge pull request #15152 from printercu/patch-5

Collected TimeZone's class methods together
Document method visibility for designing API docs. [ci skip]

cc https://github.com/rails/rails/issues/14848#issuecomment-41198795
Merge pull request #14428 from jnormore/reset_counters_alias

Updates reset_counters to allow counter name in params
Remove dead test code for unsupported adapters
Merge pull request #15137 from sgrif/sg-remove-dead-code

Remove dead test code for unsupported adapters