Revise signature of function resolveBlock(Expr* block) to be resolveBlockStmt(BlockStmt* blockStmt)
Add function ParamForLoop* toParamForLoop(BaseAST* a)
Implement ParamForLoop::copy()
Implement a function that produces a copy of the body, a BlockStmt, of a ParamForLoop
Simplify BlockStmt::isLoopStmt()
Add a short-circuit for ParamForLoop to isDefinedAllPaths()
Clarify use of blockInfoGet() in is_param_resolved()
In fold_param_for 1) Clarify that block is in fact a ParamForLoop 2) Copy the body of the ParamForLoop as a BlockStmt
Merge pull request #993 from noakesmichael/param-for-loop-3

Improve touch points between ParamForLoop and function resolution

1) There were places in resolve where a ParamForLoop was being "quietly" converted in to a BlockStmt;
some good, some bad.  Add copy() and copyBody() to do this in a more controlled manner

2) Fix up a couple f call sites that were calling blockInfoGet() on the propagated ParamForLoop


Compiled: STD clang/darwin, STD gcc/linux64, LLVM gcc/linux64
Tested: paratest --verify
Review: none