Code Review: LexicalScope2

tfpt review “/shelveset:LexicalScope2;REDMOND\tomat”

Refactors and simplifies LexicalScope and allocation of local variables.
Previously a LocalVariable instance was created per each local variable
access, which is unnecessary. Also, since many scopes don’t define any
variables at all we allocate a variable dictionary lazily.
In evals, we used to fallback to dynamic variable lookup in some cases
even though we could lookup statically.