“Sanitize” requirements before checking inferred type witnesses.
When we check type inferred type witnesses against the requirement
signature of the protocol, first "sanitize" the requirements to remap
any dependent member types into the equivalent dependent member types
within that protocol, dropping any requirements that can't be
remapped. This eliminates some extraneous recursion introduced by
checking requirements, and isolates us somewhat from the specific
choice of "canonical" associated types.