Add new test case bug1

Because of a bug in the compiler, this test will fail while outputting
the cfg since a deleted instruction is used as an argument. This is
because the value that is assigned to the variable is a common
subexpression, so it is deleted. Since it is an assignment in a loop,
it is used in a phi operand. Right now CSE won't update the arguments of
prior instructions, as in the case of a backward branch in a while loop.
Fix the bug exposed in test bug1
Add new test case for CSE cse_if2

This test doesn't pass since the expressions that are part of the
relation aren't properly linked in the chain of dominating instructions.
Fix bug exposed by cse_if2
Update output for test004

This test was vulnerable to the same bug exposed by cse_if2, but I
hadn't caught that before now.
Add new test case cse_loops2

This test case fails for a very similar bug to the one that was exposed
by cse_if2, only this one is for while statements.
Fix the bug exposed by cse_loops2