Capture free variables of lambda expressions

Store the closure of free variables' values when a lambda expression is
evaluated.

Stack allocate a buffer for to store the values of free variables in a
lambda expression.

Use LLVM trampoline to assemble a jump code at run time.

The trampoline is assembled in a stack allocated buffer. This is
dangerous. But that's how we like it.

CPU protection and operating system stack execution prevention
mechanisms may not allow a trampoline to be executed from the stack.
Proper fix: use mmap(PROT_EXEC).