Fixes #3120.
DROP TABLE ... CASCADE previously failed with 'CASCADE is not yet
supported' (and RESTRICT with a similar error). RESTRICT is the default
behavior in Postgres, so it is now handled by the standard DROP TABLE
path. CASCADE converts to a new DropTableCascade node that first drops
the foreign key constraints on other tables that reference the dropped
tables (via the same sql.ForeignKeyTable interface calls the engine's
DROP TABLE execution uses), then delegates the actual drop to the
standard DROP TABLE path, which keeps its existing dependency
bookkeeping such as dropping sequences owned by the tables' columns.
Table names without an explicit schema are resolved against the search
path, and IF EXISTS skips missing tables as before.
Not yet cascaded (dependency tracking does not cover them yet): views
that reference a dropped table (they are left in place, matching the
behavior of plain DROP TABLE), and tables/functions/procedures using a
dropped table's row type as a column or parameter type (these still
error, as without CASCADE).
Adds support for DROP TABLE ... CASCADE and RESTRICT.
Fixes #3120.