Change BasicBlock.addPhi to use Value parameters
Add throwOnError parameter to replaceArgument

This allows for situations where you are going through and replacing the
arguments of all instructions, and don't care if the value isn't found
in any particular instruction. This occurs when replacing the arguments
of loops.
Output variable names for Phi instructions
Fix bugs in Phi handling in loops
Implement Designator class

This is a private class to the parser to allow it to handle assignments
and variable references. Currently it only works for local variables,
global variables and arrays are not implemented.
Fix bug in NaryInstruction.replaceArgument
Move Phis from join BB out to enclosing join BB
Throw exception if argument not found in Phi instr

This is only when updating an existing phi instruction to choose from a
new value.