Cleanup getFirstExpr/getNextExpr and extend virtual methods to cover While/For loops
Bug fix: rename isDoWhileLoop() to isDoWhileStmt()
Introduce the standard isFoo/toFoo functions for While/For loops
Update isSingleLoopIterator to detect For/While loops without reference to blockInfo
Convert uses of blockInfo for While Loops
Fix up virtual method override name mismatch
Update .good to match more detailed compiler error message
Remove dead code; BlockStmt handler superceded by For/While loop specific code
Fix trivial coverity warning
Update regressions for today
When sub_test fails to parse an integer, write error message and exit cleanly.

This prevents start_test from also reporting that sub_test did not exit
cleanly. For example, previously on systems that don't clone symlinks
correctly, we would see the following two errors (both for the same issue):

```
[Error (sub_test): Invalid integer value in m-lsms.par-forall.numlocales (studies/lsms/shemmy)]
[Error running sub_test in /var/tmp/jenkins/chapel-ci/workspace/correctness-test-linux32-legacy-git/test/studies/lsms/shemmy (255)]
```

Now, only the first error will be reported. We _may_ want to consider making
clean_exit=True the default behavior for the Fatal() function in sub_test.
Merge pull request #922 from noakesmichael/cov-0

Fix trivial coverity warning

I recently touched bb.cpp and this caused Coverity to repeat a complaint about dead-code.
It took me a couple of looks to see the issue.  This is a loop over a std::vector<Expr*> and
the body tests whether the element is a NULL pointer or not; in practice this won't happen
for the vector in question but it must have seemed like a nice check when it was added.

However the macro for_vector() terminates early if it is finds a slot with NULL and so the
check is indeed dead-code.

I am not wholly convinced about this definition of for_vector but I think there may
be code that relies on this behavior.

Compiled: darwin/clang
Test: None; The change is trivial and the code is used to print the contents of BBs
Review: None
Merge pull request #923 from thomasvandoren/triage

Update regressions for today
Merge pull request #926 from noakesmichael/nextExpr-2

Continue to separate While stmts from BlockStmt.

a) Extend While/For stmts with overrides for getNextExpr
b) Introduce isFoo/toFoo functions for While/For
c) Update iterators.cpp to avoid calling blockInfoGet() on a while stmt
d) Other minor fixes

Compiled: STD clang/darwin, STD gcc/linux64, LLVM gcc/linux64
Tested: paratest --verify
Review: None
Additional guards to avoid call blockInfoGet() on a WhileDo and DoWhile
Replace FLAG_WIDE with FLAG_WIDE_REF.
Merge pull request #928 from noakesmichael/while-0

Introduce additional guards to avoid call BlockStmt::blockInfoGet() on a WhileDo and DoWhile

Compiled: STD clang/darwin, STD gcc/linux64, LLVM gcc/linux64
Tested: paratest --verify
Review: none
Merge pull request #927 from hildeth/renameFlagWideAsFlagWideRef

Replace FLAG_WIDE with FLAG_WIDE_REF.

FLAG_WIDE really really means that the variable to which it is attached is both wide and a reference. This renaming is a first step toward making the flags FLAG_REF and FLAG_WIDE orthogonal.
There are quite a few (32) conditionals that contain either
hasEitherFlag(FLAG_REF, FLAG_WIDE) // The variable is a reference
or
hasEitherFlag(FLAG_WIDE, FLAG_WIDE_CLASS) // The variable is wide
and several other instances where these pairs are spelled out rather than using "hasEitherFlag()". With an orthogonal flag set, we can replace these with the test of a single flag, and reduce by one the number of flags required.
Introduce WhileStmt::blockInfoGet/Set to trap attempts to invoke this virtual function on a WhileStmt
Guard against effort to invoke blockInfoGet/Set on a WhileStmt