Fix bug in higher-ranked code that would sometimes leak skolemized regions and/or cause incorrect results.
Cleanup type resolution to use type folding infrastructure and not
have such a silly over-engineered interface.
Delete tests that passed in error. We currently do not support a Clone
impl for fn pointer types including bound regions, unfortunately.
Propagate expected type more widely so that we can rewrite the
issue-14039 test in a more natural way. Previously the "type we will
cast to" was hidden unless it was an integer.