Moving more code into lazy/expression evaluation.

Expressions now implicitly use the thread-local context when
evaluating/compiling.