Rename BasicBlock.emit to addInstruction
Add function name to call instruction
Add value to immediate instruction
Add variable name to load instruction
Add variable name to store instruction
Rename getDeleted to getSubstitute, change logic

This function now returns the instruction that should always be used
instead of this one. This is needed if an instruction is used as an
argument, but that instruction has been deleted. Handles the logic of
setting the argument values.
Change the way the containing basic block is set
Make identifiers available to the parser
Add semantic information to Cmp instruction
Implement handling of branches for if statements
Implement Object.equals for Identifier
Use equals for Identifier comparisions