[ConstraintSystem] Fix a logic error in computing potential bindings.
A change was made to attempt to use constraints that we have between
type variables to inform potential bindings, such that if we have:
$T1 <: $T2
we would use $T1's bindings to add to the bindings of $T2. This is
only valid if we're adding bindings where $T1 is the supertype,
though, otherwise we could have the constraints:
$T1 <: $T2
$T1 <: X
imply that $T2 is a supertype of X, which doesn't make sense.
Fixes rdar://problem/40810000 (aka https://bugs.swift.org/browse/SR-7875).
(cherry picked from commit 54b2504699267039950673bc3133b93ce83ef179)