avoid using alias in generators

Ruby's alias produces public methods, causing a spurious Thor task
to be created.  For example, this is the reason MigrationGenerator
currently has two tasks:

    > ActiveRecord::Generators::MigrationGenerator.all_tasks.keys
    => ["singular_name", "create_migration_file"]

singular_name was meant to be an attribute, not a task.  Because it's
public, it gets called as a task every time the generator is invoked.

The fix is to ensure all generator methods have the correct
visibility.
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
Added partial days support to `DateTime`'s `advance` method.

You can now add partial days (e.g. 2.5.days) to `DateTime` with the advance method.
This was acheived by mimicing the `advance` implementation in `Time`.
Fixed changelog
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.
WIP: pass existing joins to construct_join_dependency
Put attr_reader in with all of the other instance methods

This makes the grouping make a little more sense
Add ActionController::Renderers.remove.
Remove :timestamp column type

The `:timestamp` type for columns is unused. All database adapters treat
them as the same database type. All code in `ActiveRecord` which changes
its behavior based on the column's type acts the same in both cases.
However, when the type is passed to code that checks for the `:datetime`
type, but not `:timestamp` (such as XML serialization), the result is
unexpected behavior.

Existing schema definitions will continue to work, and the `timestamp`
type is transparently aliased to `datetime`.
Merge pull request #15184 from sgrif/sg-remove-timestamp-type

Remove :timestamp column type
Revert "Rewrite journey routes formatter for performance"

This reverts commit 5c224de9e110763ec7a0f01f5b604bcf81f40bfb.

Conflicts:
	actionpack/lib/action_dispatch/journey/visitors.rb

5c224de9e110763ec7a0f01f5b604bcf81f40bfb introduced a bug in the
formatter.  This commit includes a regression test.
fix escaping in generation
make the AST go from left to right, rather than right to left
Merge pull request #15178 from zuhao/refactor_actionpack_respond_with_test

Deregister csv renderer after test to prevent leak.
Add using_resouce_with_json to controller.
Merge pull request #15182 from zuhao/refactor_actionpack_respond_with_test_2

Un-define :to_json for Customer class after stubbing.