Optimizer: fix an ownership violation caused by SimplifyCFG's jump threading
After cloning blocks in jump threading, the SSAUpdater is used to update phi arguments.
However, it sometimes inserts redundant phi arguments which split up value livetimes.
Those redundant phis have to be removed.
This change fixes two problems:
1. `replacePhisWithIncomingValues` was not called from `updateSSAAfterCloning`
2. `replacePhisWithIncomingValues` needs to handle self-cycles in the phi graph.
Fixes a compiler crash
rdar://180961843