Simple (slow!) instruction synthesis + pass support

I think the interesting part of this patch is the getValue() function in the Pass
This seems to have been the result of an uneducated guess...
The DominatorTree pass was eliminated and PostDominatorTree offers a dominates() method, so I assumed that a refactoring had rolled the functionality of both passes into one.
On closer inspection, it looks like the replacement for DominatorTree is actually DominatorTreeWrapperPass.