This fixes the prioritization of address spaces when choosing a constructor,
stopping them from being considered equally good, which made the construction
of types that could be constructed by more than one of the constructors.
It does this by preferring the most specific address space, which is decided by seeing
if one of the address spaces is a superset of the other, and preferring the other.