Autocomplete - fix bugs where locals show up multiple times in results in a for loop

Summary: When for loops are typechecked, our hooks get called multiple times.

All the hooks had protection from this except for the locals hook because it was checking a position instead of using is_autocomplete. (is_autocomplete for locals happens in naming because the var names are dropped there)

This makes it so we only get a single pass's worth of locals in the results.

I also noticed the types weren't printing well in this case with a fake environment, so I changed the code to use the stored one.

Reviewed By: @jwatzman

Differential Revision: D1597855