[Protocol checker] Eliminate ordering dependency with "unsatisfied" check.
When checking whether an @objc protocol requirement is considered
satisfied by another requirement with the same selector, make sure
to use "getWitness" (rather than "hasWitness") to avoid order
dependencies in the computation. These are fantastically hard
to reproduce in small test cases.