PostgreSQL, register custom domains. Closes #14305.

This patch registers custom domains in our OID-type_map.
They will behave exactly as the type specified by `pg_type.typbasetype`.

/cc @matthewd
refactor, use `typtype` instead of `typinput` to segment PG types.
fix, adjust OID query without range support to include required fields.

This is a follow-up fix to f7a6b115fea9f675190a79b701c7034214678f19 and
06082f66d541e581110406bbac3bc395bace3f86
Clarify 'database does not exist' message and implementation.

* Clarify what the situation is and what to do.
* Advise loading schema using `rake db:setup` instead of migrating.
* Use a rescue in the initializer rather than extending the error
  message in-place.
* Preserve the original backtrace of other errors by using `raise`
  rather than raising again with `raise error`.

References 0ec45cd15d0a2f5aebc75e23d841b6c12f3ba763
only ask if `t` is empty once.
do not create memo objects since we'll just throw them away
combine move_regexp and move_string so we only loop over states once
push move_string in to `move`
Merge branch 'rmc'

* rmc:
  push move_string in to `move`
  combine move_regexp and move_string so we only loop over states once
  do not create memo objects since we'll just throw them away
  only ask if `t` is empty once.