Implemented bound tree.
Track types and definite assignment on closed over fields.
Implemented type marking phase.
Implemented IL backend for fannkuch.
Implemented support for new Function.
Implemented smuggling of generic arguments.
Cleaned up some parts of the expression backend.
Squelch temporaries that aren't read.
Emit source locations.

This is a good start, but needs tweaking. Most of the sequence points are there at the correct location, but the debugging experience is not ideal everywhere.
Implemented closures.
Factored out the closure parameter to JsFunction.

Real closures are now used. The closure types that were already created are now also used to create the methods that use the closure as instance methods. CreateFunction now takes a delegate that has the closure as the target reference.
Cleaned up the closure implementation.

Moved all management of type, method and field builders into a separate system.
Removed locals for referencing parent closures and replaced by direct access to fields on the closure itself.
Improved function name hinting based on first assignment.
Removed <>break and <>continue names of unnamed labels.
Source code of a function is now generated as an attribute.
Fixed most of the unit tests.
Implemented result of eval/program.
Fixed last unit tests.

All unit tests now run with the new IL backend.