Fix missing corner case: VFS instructions breaking at the top of a block, leading to a path-condition-like cross edge at the top.
Add top-of-block VFS checks in a sensible place (once per PHI, not once per operand, which created duplicates!). Also make sure to label committed blocks after the first instruction that will be in that block, not the instruction that the preceding failing edge branched to.
Fill in a TODO: forward-via-globals that are used by PHI nodes, and must thus insert the forwarding before the corresponding terminator.