merge trunk
[3603163]: Prevent odd crashes in 'eval {array set ...}'
[3603163]: Stop crash in weird case where [eval] is used to make [array set]
get confused about whether there is a local variable table or not. Thanks to
Poor Yorick for identifying a reproducible crashing case.
Cherrypick the refcount fixes and comments from mig-review.

I also find the revised "createPart2" values in *Lookup* calls appealing,
but I'm too fearful of breaking things without understanding the implications.
This approach just focuses on fixing the things I broke, without trying
to "fix" things long "broken" in multiple years of releases.
Cherrypick again.  Add test.
Fix for Bug 3602706.
Merge in fix for 3602706
merge trunk