Introduce initBlock and incrBlock alongside testBlock in expandForLoop
Replace use of firstCond with consistent use of testBlock
Introduce CForLoop::buildWithBodyFrom(ForLoop* forLoop) and use it to replace certain uses of a ForLoop with a CForLoop
Merge pull request #881 from noakesmichael/iter-2

Update the code for converting a ForLoop to a CForLoop

LowerIterators includes a control path that converts the BlockStmt that represents a ForLoop in to a
BlockStmt that represents a CForLoop.  This is done by mutating the underlying blockInfo CallExpr.

This merge reorganizes the code for constructing the CForLoop init/test/incr clauses and adds a
static factory method on CForLoop that accepts a ForLoop.  The factory copies the body of the ForLoop
but not any other state.

Compiled: STD clang/darwin, STD gcc/linux64, LLVM gcc/linux64
Tested: paratest
Review: None