Convert inner loop of function getNextExpr() to leverage a virtual method that is also named getNextExpr()
Merge pull request #919 from noakesmichael/expr-1

The function getNextExpr(Expr*) has two phases; the first phase handles the simple "follow the current chain"
logic and the second phase performs a type dispatch to determine the next object to traverse.  Converted the
second phase in to a virtual method dispatch to simplify the separation of the logic for While/For from Block.

Compiled STD clang/darwin, STD gcc/linux64, LLVM gcc/linux64
Tested: paratest
Review: None