Here is a first patch to slightly refactor the type and typmod lookups
with the aim of making it easier to possibly changing the nature or
representation of typmods in the future and making it easier to merge
the collation patch.
I split the typenameTypeId function into two. Most call sites only care
about the type OID; a second function typenameTypeIdAndMod returns type
ID and typmod. So it is more explicit about which places care about
what. It also cuts down on the unholy interface design of returning
half the return value via function result and the other half via an
argument pointer.