Use the `%target-swift-5.1-abi-triple` substitution to compile the tests for
deployment to the minimum OS versions required for use of _Concurrency APIs,
instead of disabling availability checking.
You can overload a function based on its `async`-ness, and
resolution is carried out based on async-ness of calling
context.
But during protocol conformance checking, for an `async`
requirement we were accidentally choosing the non-`async
overload instead of the `async` one. The `async` one is
the choice people would expect, since the `async` requirement
is in essence the "context" that forwards to the underlying
witness. This intended behavior is also inferred from:
https://github.com/apple/swift/pull/40088
The problem boiled down to a bad check when categorizing the
witness matches prior to ranking them.
Resolves rdar://109135488 / https://github.com/apple/swift/issues/60318