Convert BlockStmt::blockInfo to a private member variable.  As first pass replace read/writes with calls to a generic virtual getter/setter.
When building basic blocks for loop, only put the test expression at the top of the loop body; not the entire blockInfo callExpr for C-For loops
Iterators with C-For loops need to capture the loop init variables as Iterator fields.  This was being done implicitly in BB.cpp.  Now it's explicit here
DCE can create degenerate nodes.  Add a post-pass to clean these up so that they don't propagate
Perform C-For loop cleanup after every Function
Tweak the format for AstDumpToNode
collect_stmts_STL needs the function body not simply the function
Merge pull request #644 from noakesmichael/blockInfo

1) Convert BlockStmt::blockInfo to a private member variable to help with WhileDo transition.  In the first pass,
replace read/writes to this variable with virtual public getter/setter.  Longer term transition those to better abstractions on the blockInfo data.

2) Stop dropping the entire C-For blockInfo data in to the first BasicBlock for the body of the loop.
C-For is now consistent with other loops; only the test expression is placed at the head of the first BB

3) Compensate for (2) by extending the business logic for mapping local variables to iterator instance variables

4) Add a "cleanup" pass to DeadCodeElimination to remove degenerate C-For loops that can be created

Reviewed: Elliiot
Compiled: Clang STD on Mac, GCC STD/LLVM on linux
Testing: Full regressions "--verify" and "--verify --llvm".