This patch removes all recursion from LazyValueInfo by breaking it up into five queues and many helper functions. In this patch<div> * getValue{InBlock,OnEdge} are now purely externally facing and their short-circuit cases were sunk</div>

<div> * getEdgeValue was cloned into hasEdgeValue which has the surprising side-effect of queueing the blocks we need in order to solve the edge (if applicable)</div><div> * Having both hasEdgeValue and getEdgeValue means that we use pred_iterator twice instead of once per edge query. In exchange, I rigged the getBlockValue queries on PHINodes to use the phi node's list of predecessors directly instead of pred_iterator.</div>

<div> * getBlockValue now does a retrieval of the cached value and nothing more, the compute was broken into four solveBlockValue* methods.</div><div><br></div><div>The good news is that it passes make check, a nightly test, and my own internal testcase (yay!). Please review!</div>

<div><br></div><div>Nick</div><div><br></div>