Fix for verify failure in recordWithRefCopyFns

Auto-copy calls were being inserted in the parallel() pass.  These calls were not being
passed through insertReferenceTemps, which inserts reference temps as necessary to make
the reference level of the formal and actual arguments match up.  Since this step was
skipped, verify() flagged it reference level mismatch as an error.

For a quick fix, I added a call to insertReferenceTemps() after the offending call is
inserted into the tree.  A more general solution would involve moving that mini-pass later
in translation or calling it redundantly after any pass that inserts additional calls to
functions that might contain formals having ref intent.

Removed the recordWithRefCopyFns.future and recordWithRefCopyFns.skipif.

TODO: Make a general sweep of the passes that occur after callDestructors and ensure that

###DETAILS
####compiler/include/passes.h
####compiler/resolution/callDestructors.cpp
Factored out a per-call version of insertReferenceTemps(CallExpr*) and inserted this into
the global namespace.

####compiler/passes/parallel.cpp
Call insertReferenceTemps(autoCopyCall) after the autoCopyCall is inserted.
Remove reference to /data/sea/* in nightly.

The path /data/sea/* was being used in nightly for syncing performance graphs.
The actual path should have been based off of the log directory. This didn't
cause any issues before because on all performance machines that used nightly
the log dir and the path in /data/sea/* were the same.

This updates the code in nightly that used /data/sea/ and updates the
syncToSourceforge graph that is responsible for rsyncing the graphs to
sourceforge. Sync to sourceforge now takes a path to sync and the destination
to sync it to on sf instead of taking a base path and host and trying to figure
out the path to sync and the dest directory
Introduce CForLoop by bulk cut/paste of ForLoop
Minor cleanup of ForLoop to remove essential CForLoop functionality
Redirect primitive WhileDoStmt to revised CForLoop
Update the Visitors to support CForLoop
Merge pull request #852 from hildeth/fixRecordWithRefCopyFns

Fix for verify failure in recordWithRefCopyFns



Auto-copy calls were being inserted in the parallel() pass. These calls were not being
passed through insertReferenceTemps, which inserts reference temps as necessary to make
the reference level of the formal and actual arguments match up. Since this step was
skipped, verify() flagged it reference level mismatch as an error.

For a quick fix, I added a call to insertReferenceTemps() after the offending call is
inserted into the tree. A more general solution would involve moving that mini-pass later
in translation or calling it redundantly after any pass that inserts additional calls to
functions that might contain formals having ref intent.

Removed the recordWithRefCopyFns.future and recordWithRefCopyFns.skipif.

TODO: Make a general sweep of the passes that occur after callDestructors and ensure that

###DETAILS
####compiler/include/passes.h
####compiler/resolution/callDestructors.cpp
Factored out a per-call version of insertReferenceTemps(CallExpr*) and inserted this into
the global namespace.

####compiler/passes/parallel.cpp
Call insertReferenceTemps(autoCopyCall) after the autoCopyCall is inserted.
Convert predictate isCforLoop to isCForLoop
Use posixpath for sourceforge destination directory

the path will always be posix regardless of what system the script itself is
running on
Merge pull request #864 from ronawho/fix-nightly-perf-dir-path

Remove reference to /data/sea/* in nightly.

[reviewed by @thomasvandoren]

The path /data/sea/* was being used in nightly for syncing performance graphs.
The actual path should have been based off of the log directory. This didn't
cause any issues before because on all performance machines that used nightly
the log dir and the path in /data/sea/* were the same.

This updates the code in nightly that used /data/sea/ and updates the
syncToSourceforge graph that is responsible for rsyncing the graphs to
sourceforge. Sync to sourceforge now takes a path to sync and the destination
to sync it to on sf instead of taking a base path and host and trying to figure
out the path to sync and the dest directory
Missed changing a variable name in syncPerfGraphs
Merge pull request #865 from ronawho/fix-nightly-perf-dir-path

Missed changing a variable name in syncPerfGraphs
Convert references to PRIM_BLOCK_* for FOR/WHILE into calls to the appropriate virtual methods
Merge pull request #866 from noakesmichael/CForLoop

Introduce CForLoop

The initial implementation is largely a cut/paste of ForLoop and hence is a thin veneer over BlockStmt.
There is currently some redundancy between BlockStmt, ForLoop, and CForLoop; there is currently
code that converts one kind of "BlockStmt" to another type by mutation.  This inconsistency will be
removed in the near term.

This patch also includes the updates to the current Visitors to support CForLoop.

Compiled STD clang/darwin, STD gcc/linux64, LLVM gcc/linux64
Tested: STD paratest
Review: None