Fixed bugs + clean up.

Two big bugs:

1. In the Lambda Lifting algorithm, the argument list of a lifted
   function was being set to the free vars of the function EXCLUSIVELY
   (so we were taking out the existing argument list).

2. Phi nodes were appearing in the middle of basic blocks because
   we were evaluating the incoming values when in the basic block in
   question instead of evaluating them in the basic blocks' predecessor.

We can now compile test/good/fact.tig successfully.