Remove duplicate tests so each is ran once
Fix parser bug to correctly parse returns

Check for the first symbols of expression to determine if there is an
expression to be returned.
Add new test case calc

This is a simple calculator program that accepts input and performs a
computation in response to the input, and it maintains a history of the
computations it has performed. It is written to be somewhat strangely to
test the code generator.
Modify test phi2

This test now will only test order dependencies. Previously, the
dependency actually formed a cycle. The modifications do not change the
expected output.
Perform topological ordering of phi moves

This still doesn't resolve cases like phi2, there seems to be a bug in
the live range analysis.
Fix subtle bug in live range calculation

This fix will ensure that if a phi in the same block is used as an
argument for another phi, that phi (the previous value) will be live
when the block is entered. This is somewhat confusing, but it is
necessary since the semantics of phi instructions is that they all occur
in parallel at the same point in time. With this fix, the test case for
phi move order dependency (phi2) passes.