Expand copy propagation to also eliminate deterministic phi functions with variables instead of just constants
Minor change to dead code elimination. Think it eliminates a potential bug that I haven't actually been able to observe in practice but am fairly certain exists.
Comments and minor refactorings