Use the phrase "test" rather than "term" to refer to the termination test
CForLoop: Introduce initBlockGet(), testBlockGet(), incrBlockGet()
CForLoop: Migrate AstDumpToNode off cforInfoGet
CForLoop: Migrate BasicBlock off cforInfoGet
CForLoop: Migrate CollapseBlocks off cforInfoGet
CForLoop: Migrate Iterator construction off cforInfoGet
CForLoop: Migrate most of the internals off cforInfoGet
Fix sub_test env var setting

If a .execenv or EXECENV file existed, subtest would copy the environment and
add whatever things were in the execenv  to it and then pass that new
environment to the test. However if sub_test set an env var after that new env
was created, that env var was not passed to the test.

This just updates how subtest adds .execenvs or EXECENV entries to the
environment. Not it just adds those to a temp list and adds that temp list to
the real environment as it's passing it to the test
Merge pull request #969 from ronawho/fix-subtest-env-var-setting

Fix sub_test env var setting

[reviewed by @thomasvandoren]

If a .execenv or EXECENV file existed, subtest would copy the environment and
add whatever things were in the execenv to it and then pass that new
environment to the test. However if sub_test set an env var after that new env
was created, that env var was not passed to the test.

This just updates how subtest adds .execenvs or EXECENV entries to the
environment. Not it just adds those to a temp list and adds that temp list to
the real environment as it's passing it to the test
Merge pull request #970 from noakesmichael/cforLoop-1

CForLoop: Introduce operators to access header info and transition most calls to BlockStmt::blockInfoGet()

Compiled: STD clang/darwin, STD gcc/linux64, LLVM gcc/linux64
Tested: paratest --verify and paratest --verify --llvm
Review: none
Skip test/io/ferguson/qio_test.test.c for Cygwin

This test depends on lseek to reset its position within a file,
and then reads a certain number of bytes to determine the file's
length.  However, on Cygwin, the use of lseek means that processes
reading text files can't depend on the number of bytes read to
determine their position within a file.  This test should be
rewritten for cygwin portability, and our qio runtime code checked
for similar assumptions.  Until then, it is not useful there.
Introduce mInitClause, mTestClause, mIncrClause and remove cforInfoGet()
CForLoop: Update loopForClause() for the new internal representation
Merge pull request #972 from noakesmichael/cforLoop-2

CForLoop: Introduce instance variables for header state and deprecate use of BlockStmt::blockInfo

This is the final step in separating the primary While/For loop nodes from a reliance on BlockStmt:blockInfo

Compiled: STD clang/darwin, STD gcc/linux64
Tested: paratest --verify
Review: none
Added feedback from Tom on "on nil" semantics.
Merge pull request #973 from vasslitvinov/add-toms-feedback-to--on-nil.future

Added feedback from Tom on "on nil" semantics.

In his email  to me Tom says:

"[...] the discussion focuses on what "on c" means when c is of class type.  As an unsupported opinion, I think that users are likely to find it more useful if "on c" means "go to the locale on which c is allocated".  In the case that c == nil, there is no allocation associated with c, therefore "on c" is undefined.  I would expect a runtime error to result.

I think this is consistent, because instead of using 0 (== rootLocale.id) as the locale_id portion of a default-initialized wide pointer, we could use a distinguished value LOCALE_UNINITIALIZED.  If the address portion of the pointer is zero, no memory has been allocated, so the class object does not exist on any particular locale.  It is, in that sense, absurd to talk about "nil" residing on any particular locale."
Add tests and futures related to module, variable, and type name interactions

It was discovered that when a type (specifically "object") and a module have
the same name, their names are interpretted as multiple definitions.  We think
these should not conflict, so add two futures covering the cases where it can
occur (so that some good Samaritan doesn't fix half the problem).  Additionally,
we didn't seem to have any tests that covered the cases where a variable has
the same name as its module file.  At least, none lived within the module
test directory.  So, to lock in that behavior, I added two tests of that
functionality while I was here.
Merge pull request #971 from lydia-duncan/newCygwinSkipif

Skip test/io/ferguson/qio_test.test.c for Cygwin [ok'd by noakesmichael]

This test depends on lseek to reset its position within a file,
and then reads a certain number of bytes to determine the file's
length. However, on Cygwin, the use of lseek means that processes
reading text files can't depend on the number of bytes read to
determine their position within a file. This test should be
rewritten for cygwin portability, and our qio runtime code checked
for similar assumptions. Until then, it is not useful there.
Merge pull request #974 from lydia-duncan/moduleFuture

Add tests and futures related to module, variable, and type name interactions
[ok'd by tmacd9]

It was discovered that when a type (specifically "object") and a module have
the same name, their names are interpretted as multiple definitions. We think
these should not conflict, so add two futures covering the cases where it can
occur (so that some good Samaritan doesn't fix half the problem). Additionally,
we didn't seem to have any tests that covered the cases where a variable has
the same name as its module file. At least, none lived within the module
test directory. So, to lock in that behavior, I added two tests of that
functionality while I was here.
Kyle pointed out that we recently updated our host indicators for Cygwin