Follow up to bbe7fe41 to fix enum leakage across classes.

The original attempt didn't really fix the problem and wasn't testing the
problematic area. This commit corrected those issues in the original commit.

Also removed the private `enum_mapping_for` method. As `defined_enums` is now a
method, this method doesn't provide much value anymore.
Ensure we are looking  with string keys
Only apply DATABASE_URL for Rails.env

As we like ENV vars, also support DATABASE_URL_#{env}, for more obscure
use cases.
Make sure DEFAULT_URL only override current environment database
configuration
Test DATABASE_URL has precendance over DATABASE_URL_#{environment}
Only call DEFAULT_ENV proc one time
Check env_url only once
entry is always a Hash
Rearrange the config merger some more

This seems to simplify the operative part. Most importantly, by
pre-loading all the configs supplied in ENV, we ensure the list is
complete: if the developer specifies an unknown config, the exception
includes a list of valid ones.
Give a deprecation message even when the lookup fails

If the supplied string doesn't contain a colon, it clearly cannot be a
database URL. They must have intended to do a key lookup, so even though
it failed, give the explanatory deprecation warning, and raise the
exception that lists the known configs.

Conveniently, this also simplifies our logical behaviour: if the string
matches a known configuration, or doesn't contain a colon (and is
therefore clearly not a URL), then we output a deprecation warning, and
behave exactly as we would if it were a symbol.
Ensure we correctly and immediately load all ENV entries

.. even when the supplied config made no hint that name was relevant.
Less ambition, more deprecation

The "DATABASE_URL_*" idea was moving in the wrong direction.

Instead, let's deprecate the situation where we end up using
ENV['DATABASE_URL'] at all: the Right Way is to explicitly include it in
database.yml with ERB.
Don't deprecate after all
Drop in @jeremy's new database.yml template text

In passing, allow multi-word adapters to be referenced in a URL:
underscored_name must become hyphened-name.
Merge pull request #14633 from matthewd/narrow_database_url

Only apply DATABASE_URL for Rails.env
Use short-form for the scaffold render calls and drop the needless test
Dont encourage aliases now that we have variants
Dont abbreviate that which needs no abbreviation
Updates the maintenance policy with new Rails versions
Merge pull request #14647 from matiaskorhonen/updates-maintenance-policy

Updates the maintenance policy with new Rails versions