Merge branch 'new-parser'
Add the Instruction struct.
Add the VariableToArgumentNumberMapper class.
Added a  method to get the variables used.
Add virtual ConvertToInstructions methods to Expression and Function, and filled them in for some derived types.
Expand Instruction with more opcodes.
Add the compile method and fill it in. Switch from Ldarg to Ldloc for VariableAccess.
Fix the name of the function.
Add null checks.
Add string as an argument type.
Add the Ldstr opcode.
ToString.
Add FastEval. Re-work the compiled method to take a simple dictionary instead of an entire SolusEnvironment.
Fix the parameter type.
Add the conv.r4 opcode.
Add the ret opcode.
Fix the unit step function's IL instructions.
Add a ret to the end of the compiled method.