PostgreSQL, warn once per connection per missing OID. Closes #14275.

[Yves Senn & Matthew Draper]

(cherry picked from commit 9f62344d9552f0a58e4aa43ca6f1a7fec273a04e)

This is a partial backport of #14692.

Conflicts:
    activerecord/CHANGELOG.md
    activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
    activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb

Conflicts:
	activerecord/CHANGELOG.md
	activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb
	activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
	activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
Merge pull request #14592 from laurocaetano/equality_between_relation_and_collection_proxy

The comparison between `Relation` and `CollectionProxy` should be consistent.

Conflicts:
	activerecord/CHANGELOG.md

Conflicts:
	activerecord/CHANGELOG.md
	activerecord/lib/active_record/association_relation.rb
	activerecord/test/cases/base_test.rb
docs, double meaning of `serialize` argument. Closes #14284.

The second argument to serialize has double meaning:
  * `class_name` of the Type to serialize
  * `coder` to use then serializing.

The new variable name and the docs better describe that behavior.
Merge pull request #14736 from nashby/hidden-index

`collection_check_boxes` respects `:index` option for the hidden filed name
Conflicts:
	actionpack/lib/action_view/helpers/tags/collection_check_boxes.rb
	actionpack/test/template/form_collections_helper_test.rb
	actionview/CHANGELOG.md
Use the index on hidden field
Return null type format when format is not know

When requesting a controller with the following code with a unknown format:

    def my_action
      respond_to do |format|
        format.json { head :ok }
        format.any { render text: 'Default response' }
      end
    end

we should render the default response instead of raising ActionController::UnknownFormat

Fixes #14462
Merge pull request #14728 from stomar/assertion-msg

Remove surplus period from assertion messages
Merge pull request #14766 from eric-chahin/migration_bug

Changed change_column in PG schema_statements.rb to make sure that the u...
Conflicts:
	activerecord/test/cases/adapters/postgresql/uuid_test.rb

Conflicts:
	activerecord/test/cases/adapters/postgresql/uuid_test.rb
Merge pull request #14770 from crazymykl/avoid_dos_vuln_in_i18n_guide

Avoid suggesting dangerous code in i18n guide
Conflicts:
	guides/source/i18n.md
Merge pull request #14773 from eric-chahin/null_relation_fix

Changed the NullRelation so that when count is called with #group it wil...
Conflicts:
	activerecord/CHANGELOG.md
	activerecord/lib/active_record/null_relation.rb
Merge pull request #14783 from hakanensari/autoload-strict-validation-failed

Autoload ActiveModel::StrictValidationFailed
Merge pull request #14793 from arthurnn/fixes_8928

Fixed has_many association to make it support irregular inflections.
Correctly handle joining scoped associations with table aliases.

Backport of #14154 to 4-0-stable.