Fix a bug for handling chpl__tryToken in functionResolution

When rolling back the callStack in functionResolution after a resolution fails
in the then side of a chpl__tryToken conditional, stop if the callStack becomes
empty.

Added a test that causes a compiler segfault without this change because the
callStack becomes empty and then a function is called on the tail of the empty
stack.
Add FLAG_INVISIBLE_LABEL and make CG functions always visible.
Add a test of chpl__tryToken that fails to resolve on both branches

Failing on both branches results in an unresolved call error.  Adding this
test was a recommendation from my reviewer (hildeth).
Added FLAG_COMPILER_GENERATED to all compiler-generated functions in buildDefaultFunctions.cpp

Passes with only 4 regressions.
Pragma "compiler generated" is required so object.name does not dominate.
Remove FLAG_COMPILER_GENERATED from user main.

Let the implicit main from the first module named on the command line dominate an explicit
main included in a "use" statement.

Removed the TODO comments related to this regularization of FLAG_COMPILER_GENERATED.
Remove unused labels FLAG_LABEL_BREAK and FLAG_LABEL_CONTINUE.

These labels were unused in the compiler.

TODO: Remove FLAG_INVISIBLE_LABEL as well.  We can just key off of the label symbol.
Update .gitignore for new test files

The file utilities functions that Francisco and I have added recently create
stub files and links that don't need to exist in the repository.  After any
test run that includes these directories, git status will flag these files as
untracked.  This will correctly ignore them.
Merge pull request #666 from lydia-duncan/updateGitIgnore

Update .gitignore for new test files

The file utilities functions that Francisco and I have added recently create
stub files and links that don't need to exist in the repository. After any
test run that includes these directories, git status will flag these files as
untracked. This will correctly ignore them.
Snapshot of where I left things on Friday
All labels are invisible labels in scopeResolve.

An assert proved that all labels that are skipped when populating the symbol table in
scopeResolve are invisible labels.  That means that the FLAG_INVISIBLE_LABEL is moot, so I
removed it (and the assert).

Passes all --no-local tests.
Improve a comment near tryToken handling code to explain what the tryToken does

Reviewer @hildeth suggested improving on this comment.
Merge pull request #662 from daviditen/callStackBackupOnTryFail

Fix a bug for handling chpl__tryToken in functionResolution
[reviewed by hildeth]

When rolling back the callStack in functionResolution after a resolution fails
in the then side of a chpl__tryToken conditional, stop if the callStack becomes
empty.

Added a test that causes a compiler segfault without this change because the
callStack becomes empty and then a function is called on the tail of the empty
stack.  Added another test showing what happens when both sides of a
conditional using a tryToken fail to resolve (unresolved call error).
Merge pull request #667 from hildeth/makeCGUniform

Make the use of FLAG_COMPILER_GENERATED uniform



The use of FLAG_COMPILER_GENERATED was overloaded: It was used in the parsing routines to mark break and continue labels so they were not included in the symbol table in the scopeResolve pass. The flag was later used to tag functions that are (you guessed it!) compiler-generated, so that user-defined versions are able to override these.

Some of the functions built in buildDefaultFunctions.cpp should have had the flag applied, but because of interaction with that symbol table filter the flag could not be applied. I left it as a todo after the assign-to-ref work earlier this year.

In this patch, I first split the flag in two and used the new FLAG_INVISIBLE_LABEL for the original purpose. Then I found that by making the symbol table filter pay attention only to that flag (and let all functions with FLAG_COMPILER_GENERATED populate the symbol table), the compiler still functioned correctly.

Then I added all of the missing FLAG_COMPILER_GENERATED in buildDefaultFunctions.cpp and ran a full test run. I ended up with 4 regressions. Addition of the flag to the generated user main function was overly aggressive so I backed that out, curing 3 tests. The final test I cured by adding an explicit pragma "compiler generated" to put the user getter function on equal footing with the compiler-generated ones.

Then, I found that the new FLAG_INVISIBLE_LABEL and two existing FLAG_LABEL_BREAK and FLAG_LABEL_CONTINUE were moot, so I removed them.
Allow for /proc/cpuinfo files lacking "cpu cores" and/or "siblings" entries.

Borrow code from localeModels/gbt/maxTaskPar to handle the case where
/proc/cpuinfo doesn't have the entries we expect for hyperthreads.
Merge pull request #668 from gbtitus/proc-cpuinfo-no-cores-sibs

Allow for /proc/cpuinfo files lacking "cpu cores" and/or "siblings" entries.
Change sub_test to always use the compileline from CHPL_HOME

compileline can behave poorly if run from a CHPL_TEST_UTIL_DIR that is
not inside of CHPL_HOME when using a module.
Merge pull request #669 from Kyle-B/kb-subtest-compileline

Change sub_test to always use the compileline from CHPL_HOME

compileline can behave poorly if run from a CHPL_TEST_UTIL_DIR that is
not inside of CHPL_HOME when using a module.
Introduce While/For loop as a thin veneer over BlockStmt
Convert While/For build functions to class methods on the new classes