Header dependency cleanup
Distribute the BasicBlock code as virtual methods on Expr
Clean up the singleYield test and then add WhileDo and DoWhile
Small tweaks including some temporary tests
Tweak deadCodeElimination and virtualize a portion of the "is essential" calculation