Simple (slow!) instruction synthesis + pass support

I think the interesting part of this patch is the getValue() function in the Pass
Maybe I'm misunderstanding something, but don't we want to check whether `IP` dominates `ReplacedInst`, rather than whether `IP` post-dominates `ReplacedInst`?