Fix overlapping memory in memcpy() reported by valgrind.

This was a slam-dunk.  I replaced every direct call to memcpy() in our runtime code with a
call to chpl_memcpy(), then defined the latter as an always-inlined function that calls
through to the real memcpy().

The symptoms of the valgrind error are that the source and destination address are the
same (as I suspected).  So I added an assert for that error case and tracked down the
caller.  In chpl_gen_comm_get, there is the possibility that the source and destination
address are the same, if the data being fetched resides on the same locale.  That is where
I fixed the problem.

It would be possible to also fix the problem in the calling module code, but there we
would have to add a primitive to perform pointer comparison.  It is far easier to do this
in the runtime code.

I concluded that it would be helpful to leave the chpl_memcpy wrapper in place.  If NDEBUG
is true, then the assert will expand to nothing, and the whole routine will inline to a
direct call to memcpy.  So the runtime cost of this extra code should be nil (with
optimizations enabled).
Truncate norms and Fvals and update .good files.
Updated according to comments from gbt:

Moved the src==dest test out of chpl_gen_comm_get() and into chpl_memcpy().

Adjusted indentation in chpl-cache.c, due to wider function name (chpl_memcpy vs. memcpy).

diff --git a/runtime/include/chpl-comm-compiler-macros.h b/runtime/include/chpl-comm-compiler-macros.h
Merge branch 'quietMadchap' of https://github.com/chapel-lang/chapel into quietMadchap
Remove redundant truncation of fval and update test_diff.good.
Skip testing multilocale lammps/lsms files under comm=none.
Merge branch 'fixMemcpyOverlap' of github.com:hildeth/chapel into fixMemcpyOverlap

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Merge pull request #757 from bradcray/triage-sep-blc

Updating REGRESSIONS from past 24 hours or so

New errors
----------
* LeakedMemory5 is now not finding its suppression (probably fixed with
  Lydia's baseline string leaks fix -- have alerted her)


Resolved errors
---------------
* Removed pervasive I/O sporadic failures from x?-wb.* category, as they
  seem to be cleared up (thanks Mike!!!)

* Removed lulesh failures from x?-wb.prgenv-cray as they seem to have
  self-resolved (due to the above?  Or something else?  Thanks masked man!)

* Removed baseline failures due to different amounts of string data leaked
  (thanks Lydia!)

* StringImpl/memLeaks/promotion also seems fixed (thanks Lydia!)


Misc
----
* moved StringImpl/memLeaks/coforall down to gasnet.fifo as that's the only
  place I ever see it fail

* noted compopts addition to parSafeMember test
Merge pull request #746 from hildeth/fixMemcpyOverlap

Fix overlapping memory in memcpy() reported by valgrind.

Replaced every direct call to memcpy() in our runtime code with a
call to chpl_memcpy(), then defined the latter to return the dest argument if dest == src and otherwise call the real memcpy().
Update .good/.prediff for chown file to support cygwin platform.

On cygwin, chown is reporting an "Invalid argument" error instead of the
expected "Operation not permitted" error. The new prediff replaces both
of these with "SYS_ERR", which is what the .good file now expects.
Back dest==src test out of chpl_memcpy().

When -Werror=uninitialized is tossed, GCC complains about the version of chpl_memcpy()
where memcpy() is called only if dest and src differ.  It apparently does not reason that
dest is valid since it is already equal to src.  So I backed out the aggressive
conditional call to the system memcpy, and instead moved the dest != src test back to
chpl_gen_comm_get().

I also noticed that code used in building the launcher cannot see the definition of
chpl_memcpy(), so I reverted those calls to being direct calls to the system memcpy().

TODO: We may still get hung up on the assert, in which case we can address the cases
proactively rather than waiting for valgrind to flag them.
Merge branch 'master' into fixMemcpyOverlap
Merge pull request #759 from hildeth/fixMemcpyOverlap

Fix memcpy overlap tail

Greg's suggested change did not work with CHPL_COMM=gasnet, so I backed it out.

Also, when building launcher code, chpl_memcpy is not defined, so I reverted the memcpy --> chpl_memcpy change as needed.
Convert collapseBlocks functions in to methods on FnSymbol and BlockStmt
Unsuppress LeakedMemory5 for baseline testing

This also passes baseline testing now because of my change to the parallelism
debugging in DefaultRectangular.
Merge pull request #761 from lydia-duncan/unsuppressBaselineTest

Unsuppress LeakedMemory5 for baseline testing

This also passes baseline testing now because of my change to the parallelism
debugging in DefaultRectangular.
Quiet overflow test on cygwin and whiteboxes.
Merge pull request #762 from hildeth/quietOverflowTest

Quiet overflow test on cygwin and whiteboxes.
Merge pull request #755 from vasslitvinov/skip-multilocale-lammps-for-comm=none

Skip testing multilocale lammps/lsms files under comm=none.

These sets of tests:

  studies/lammps/shemmy/p-lammps-n1
  studies/lammps/shemmy/p-lammps-n2
  studies/lammps/shemmy/p-lammps-n4

and

  studies/lsms/shemmy/lsms-parallel-n1
  studies/lsms/shemmy/lsms-parallel-n2
  studies/lsms/shemmy/lsms-parallel-n4

differ only in .numlocales. So:

* Skipif ...-n2 and ...-n4 when comm=none.

* Change ...-n2.{chpl,good,execopts} and ...-n4.{chpl,good,execopts}
  to symlinks to the respective ...-n1.*
  to emphasize their same-ness.

When our testing system supports multiple numlocales for a single test,
the symlinks can just be deleted.

I debated whether to make ...-n2.chpl and ...-n4.chpl
just 'use' the respective ...-n1.chpl, instead of symlinks.
Then I realized that that was not an option because
the file names had dashes, and I was not up for renaming the files.

Reviewed by Lydia.
Fix QIO ctests after #746.

The QIO ctests do not pull in the definition of chpl_memcpy from chpl-mem.h, so an
alternate definition must be supplied when SIMPLETEST is true.

I changed renamed chpl_memcpy() calls to qio_memcpy() or deque_memcpy() as appropriate and
provided macro definitions for these functions.