Class fix branch

Basic LValue support.
Fixed several bugs related to MIPS generation.
Should support both stack and global variables.
Only have tested integer types, but everything else should work.
Haven't tested Arrays and Recs.



Yes, it's a roundabout of doing things but it's the best I could find given the current structure. Basically it means LoadMemoryOffset from m_value.

Basically it generates code like this:

loadi $8 4 (Load immediate offset value)
add $10 $28 $8 ($28 being the gp)
load $11 0($10)

The value located at 4($gp) is now loaded into register $11.

I designed it this way to try and separate things from MIPS, keeping in the separation between front end and back end.