Add class for loop headers

The class LoopHeader extends BasicBlock, the difference will be that
when a phi is added to LoopHeader, we will search through all
instructions dominated by LoopHeader in order to replace the variable
used in the phi with the result of the phi.
Add class for branch instructions
Change PsuedoInstruction to NoArgInstruction

There are more uses for an instruction that doesn't take an argument,
than an instruction that isn't really an instruction (whatever that
means anyway)
Add classes for each opcode

This is some Java bloat braindamage, but some of these instructions will
legitimately have to be specialized.