When evaluating a goal we also store the original values
for the CanonicalVarValues of the canonicalized goal.
We use this to map any CanonicalState from the local InferCtxt
of the solver query to the InferCtxt of the caller.
The expected term of a NormalizesTo goal gets replaced
with an unconstrained inference variable when computing
NormalizesTo goals and we return the nested goals to the
caller, who also equates the actual term with the expected.
What kind of probe weβre in. In case the probe represents a candidate, or
the final result of the current goal - via ProbeKind::Root - we also
store the [QueryResult].