Simple (slow!) instruction synthesis + pass support

I think the interesting part of this patch is the getValue() function in the Pass
I should also add that this error can get triggered. For example, it happens while building STP with Souper. The problem is a GEP. Really, I'd rather have the hard failure.