Instead of patching the original blocks, we now generate new blocks and
delete the old blocks. This results in simpler code with a less twisted
control flow (see the change in entry-block-shuffled.ll).
This will make https://reviews.llvm.org/D60318 simpler by making it more
obvious where control flow created and deleted.