Split getNextExpr() in to the core function and a virtual method to support the recursion
Extend WhileDo and DoWhile with the virtual methods for post-order traversals
Add the ability to replace a stmt in an Alist with a different statement.  This will be used, for example, to replace a simple WhileDoStmt with a version that's wrapped in a BlockStmt.
Attempt to hide WhileBase's list of AST nodes
The body of a WhileBase needs to be a BlockStmt so that the iteration clauses can be inserted
isBlockStmt() needs to be specific to instance and not include WhileBase etc
Convert isDefinedAllPaths, from checkResolved(), in to a virtual method on Expr