Base for LLVM backend.
Binding value substitution in compiling phase.
Code generator for binary operators and If.
Light syntax changes and code generator for If.

Clean up lexer and simply parser.
Add interactive shell and JIT support.
Base for recursive lambdas.

Preserve binding metadata after substitutes are applied. Include a binding name as an external reference so it can be referenced inside the binding value.
Merge branch 'llvm'