Add an optimization to remove ref temps when possible

This changeset makes inlineFunctions remove reference temps when possible. "Possible" is defined as any call that is a primitive or only contains primitive calls. While not perfect, this does remove ref temps for simple things like =, +=, *=, etc.

test_nested_var_iterator3 has been turned into a bug future in the pull request. A limitation in copy propagation was exposed by my changes, Tom is aware of this and said he will look into it. 
This is always PRIM_MOVE currently because insertReferenceTemps inserts the PRIM_MOVE and you only removed ref temps that it adds, but does it make sense to check for PRIM_ASSIGN here too since the intent is to get rid of PRIM_MOVE over time?