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.
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
Add multiple lines message support for SSE module
simplify AC:ViewPaths::_prefixes. by making it recursively traversing up the inheritance chain, classes can override local prefixes.
deprecate AbC:Base::parent_prefixes.
rename ::_local_prefixes to ::local_prefixes to state the public attribute.
document the latter.
make ::local_prefixes private, test overriding it and remove documentation for overriding ::_parent_prefixes.
Fix how to compute class name on habtm namespaced.

Thank's for @laurocaetano for the help with tests. :smiley:

Fixes #14709
Use i18n master to run tests
introduce AR::ConnectionAdapters::PostgreSQL for sharing modules (with AR-JDBC)
... 'shared' OID, ArrayParser and Cast helpers, also re-arranged Column's dependencies
PostgreSQL's SchemaStatements seems a could candidate for re-use (with AR-JDBC)
move PostgreSQL's DatabaseStatements out of the PostgreSQLAdapter name-space
PostgreSQLAdapter::Utils seems to be only used from a single spot - quite redundant
Merge remote-tracking branch 'apotonick/simplify-prefixes'

This is the rebased version of #15026

Closes #15026
Improve CHANGELOG entry
._prefix is private API so we should not recommend to override it
Mark _prefix as nodoc

These methods are private API.
Follow the documentation guideline
Refactoring the code to make consitional return explicit