Setting up for recursion.

Added the keywords "cancel" and "return", where the former is for breaking out of loops and the latter is for returning from functions. I've added the class for these control flow operations as well (called ControlOperation), but they still need extensive testing. The symbol table has been completely reworked to isolate multiple instances of the same function. The only previous issue was that VariableReference needed to access some information ahead of time, but that should no longer occur during execution.
Most of the changes are from returning getValue to an argument-less function.