Changed variable stack to be a stack of frames, which makes everything a hell of a lot easier. When a frame is first pushed, it is a static empty frame, and then is switched to a real frame if a parameter or variable is pushed.