Fix #571: handle variable swapping correctly (by not optimizing LOAD_FASTs too eagerly)

Note there is some complication, because other parts of Numba must still be able to infer that a function result comes from the function arguments.
Add a pass to remove unused temporaries.
(XXX not sure how to test for this)
Remove unused code
Remove IR optimization phase (obsolete?)
Merge pull request #594 from pitrou/fix571

Fix #571: handle variable swapping correctly (by not optimizing LOAD_FAS...