Simple (slow!) instruction synthesis + pass support

I think the interesting part of this patch is the getValue() function in the Pass
I think the hard failure is preferable. This routine is very closely tied to the bottom-level infer() function in Solver.cpp. It should never see an inferred Souper instruction other than the ones explicitly guessed by infer(). Therefore, if it does see an unexpected instruction, something is extremely wrong and I would like to know about it right away rather than having to look for a statistic.