Identifies a particular impl in the source, along with a set of
generic parameters from the impl’s type/lifetime parameters. The
nested vector corresponds to the nested obligations attached to
the impl’s type parameters.
This is a lot more limited than the old solver’s equivalent method. This may lead to more Ok(None)
results when selecting traits in polymorphic contexts, but we should never rely on the lack of ambiguity,
and should always just gracefully fail here. We shouldn’t rely on this incompleteness.