Add a TriState value class.

Sometimes true and false aren't enough.
Eliminate duplicated logic between isSubType/isSameType.

Now in typeRelationPreCheck.
SI-7520 bug in subtyping.

isSubType, if given two SingleTypes, would check =:= and
stop there. It is necessary to continue with weakening the left
hand side, because (for instance) the singleton type on the
left hand side could be a refinement class carrying parents
which are themselves single or constant types.