Refactor `PostgreSQL::TableDefinition#primary_key`

Because call the `column` method and set the `options[:primary_key]` is
handled at `super`, here need only treat the `options[:default]`.
Merge pull request #18221 from kamipo/refactor_table_definition_primary_key

Refactor `PostgreSQL::TableDefinition#primary_key`
Add a note about non-buffering servers for AC::Live

[ci skip]
reduce duplication in `ConnectionAdapters::Table` docs. [ci skip]

Most of the documentation very closely mirrors the matching
docs from `SchemaStatements`. I reduced duplicated copy and
added links to the underlying methods for the user to follow.
add autoload for `ForeignKeyDefinition`.

/cc @sgrif
Support for any type primary key.
Add bigint primary key support for MySQL.

Example:

    create_table :foos, id: :bigint do |t|
    end