Changes AbstractBytecodeEmitter to have abstract methods and creates a new EmptyBytecodeEmitter.
Implements ExpressionBytecodeGenerator and updates the visitor method for it (and the visitor method, VisitParExpressionList).
Removes some stuff from CodeScope that now exists in the base class.
Implements BlockBytecodeEmitter and updates the visitor method for it.
Standardizes the names of the generators and emitters.
Replaces some wrong usages of CodeScope with CodeBlock.
Implements VariableDeclarationGenerator and updates the visitor method for it.
Moves the VariableDeclarationGenerator to the VariableDeclarationStatementEmitter (so that it can be reused by the statement version of a variable declaration).
Implements ReturnStatementEmitter and updates the visitor method for it.
Adds a Jump instruction.
Adds a JumpIfZero instruction.
Implements IfStatementEmitter and updates the visitor method for it.
Implements ForStatementEmitter and updates the visitor method for it and updates the grammar to reduce some redundant states.
Implements WhileStatementEmitter and updates the visitor method for it.
Implements EmitterUpdaterDeclarationStatementEmitter and updates the visitor method for it.