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
Merge pull request #18220 from kamipo/bigint_primary_key_support

Add bigint primary key support for MySQL.
Provide a better error message for unsupported classes in `serialize`

We only support classes which provide a no-args constructor to use as a
default value. We can provide a more helpful error message if we catch
this when `serialize` is called, rather than letting it error when you
try to assign the attribute.

Fixes #18224
Provide :touch option to save() to accommodate saving without updating timestamps. [#18202]
Merge pull request #18225 from DanOlson/update-without-changing-timestamps

Provide :touch option to save() to accommodate saving without updating t...
Fix warning: `*' interpreted as argument prefix
Merge pull request #18226 from kamipo/fix_warning_interpreted_as_argument_prefix

Fix warning: `*' interpreted as argument prefix