Implemented structured L values.
Changed the internal representation of functions to an 8 byte value like so:

struct Env {
	T1 t1;
	T2 t2;
	...
	Tn tn;
};

struct Function {
	T (*f)(T1, T2, ..., Tn);
	Env* e;
};

This means no more allocate calls for each function during program initialisation! Yay!
This will also play a significant role in implementing the IR for OOP code.