Prevent access to the Let environment inside builder functions

It's easy to accidentally use 'env.foo' (instead of this.foo) inside builder
functions because the builder function is closes over your LazyLet environment
reference.

Normally this would not cause a problem, but it can potentially break variable
redefinition and cause stack-blowouts.

Now, LazyLet will fail when the environment is accessed from within a builder
function with an informative message that tells you which variable is the
culprit.