Let and tuple expressions

Let and tuple expressions work. Now only lists are remaining.
Add lists.

Now lists are supported.
Add spaghetti code elimination
Function and basic values closure optimization

Function values and basic values do not create closure objects.
Little changes & bugfix for prettyprinter.

CompilerState was simplified and a bug with cons was fixed in
prettyprinter.