add var fence and make temp vars more descriptive

Variable fences are just do end blocks in Lua. This serves to help
LuaJIT do liveliness analysis by making local variables fall out of
scope as soon as possible. Recommended to avoid confusing the JIT
tracer.

Temp vars generated in Lua source can now optionally have a description
tag to help examining and debugging what a particular variable is used
for.