Handle domain types when parsing the schema on PostgreSQL

Before, domain types weren't treated specially, which meant that
they probably were not typecast correctly in models, since the
:db_type reflected the domain type name, which would probably not
have a matching schema type symbol.

This makes Database#schema return the base type name and oid. To
avoid losing information, the domain type name and oid are made
available in :db_domain_type and :domain_oid.
Don't reset conversion procs when loading pg_* extensions

Previously, for the extensions that add entries to PG_TYPES, Sequel
reset the conversion_procs as the path of least resistence.  However,
that can lead to extra work, and may lose custom conversion procs
added manually.

Change the implementation so that just the procs the extension
adds are added to the database when the database loads the support.
Cleanup artifacts of previous domain type spec failures
Handle hstore[] types on PostgreSQL if using pg_array and pg_hstore extensions

This changes pg_array to automatically attempt to handle array
types for all named types.  It's not specific to hstore, but
hstore is currently the only named type added by an official
extension.
Add Database#supports_schema_parsing? for checking for schema parsing support

I plan to add similar methods for indexes and foreign_key_list,
but that will wait until after Sequel 4, since currently
all databases define those methods.