Fix handling of for loop patterns in regionck

When establishing region links within a pattern, use the mem-cat
of the type the pattern matches against (that is, the result
of `iter.next()`) rather than that of the iterator type.

Closes #17068
Closes #18767
Add regression for #17068
Add regression for #18767
auto merge of #18780 : bkoropoff/rust/regionck-for-loop, r=eddyb

Use the mem-cat of the iterator element type rather than the iterator itself when processing the for loop pattern.

Closes #17068
Closes #18767