[MiscDiagnostics] Fix a crash in `OpaqueUnderlyingTypeChecker`
Since opaque result type can reference generic parameters of context,
it cannot reply purely on "index" of the opaque generic parameter
while diagnosing a problem, it needs to perform a type substitution
using a substitution map of a particular candidate to determine the
underlying type.
Resolves: rdar://90456579