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.
Fixes URL generation with trailing_slash: true

URL generation with trailing_slash: true was adding a trailing slash
after .:format

    Routes.draw do
      resources :bars
    end

    bars_url(trailing_slash: true, format: 'json')
      # => /bars.json/

This commit removes that extra trailing slash
pg, extract schema definitions into separate file.

This mirrors the layout of abstract adapter and puts the definitions
inside the `PostgreSQL` namespace (no longer under the adapter namespace).

/cc @kares
pg, remove duplicated code.
Merge pull request #14986 from dlangevin/trailing-slash-url-generation

Fixes URL generation with trailing_slash: true

Conflicts:
	actionpack/lib/action_dispatch/http/url.rb
Add documentation for using Rails with a reverse proxy
Merge pull request #13988 from zzak/guides_configuring_reverse_proxy

[Guides] Add documentation for using Rails with a reverse proxy [ci skip]
Merge pull request #9083 from bronson/patch-1

avoid using alias in generators
fixed capitalization
Add FIXME note about the thor bug
Merge pull request #15298 from ShunsukeAida/fix_capitalization

fixed capitalization [ci skip]
rake stats for engines
documentation fix
Merge pull request #15264 from Gaurav2728/gaurav-documentation_fix

documentation link fix and removing unused reader
Merge pull request #15299 from andriytyurnikov/engine_friendly_rake_stats

rake stats for engines