With GASNet amudprun+ssh launch, forward environment to user process.

GASNet's amudprun launcher does not forward the environment from the
launcher to the the user processes.  Do it ourselves in this case, using
the new -E option to the user program.

runtime/src/launch/amudprun/launch-amudprun.c
  If we using the ssh spawner, add the environment to the user program
  command line via the new -E option.
  While here, I also did a little cleaning up: moved _nlbuf (renamed to
  nlbuf, what's with the leading '_' on a file-static var?) into the
  only function that uses it, and changed sprintf(3) to snprintf(3) in
  the two places where we print into limited-size buffers.  The buffers
  should always be long enough, but it's still good style.  I also got
  rid of a pair of comments that didn't seem to be adding anything.

test/execflags/gbt/getenv.chpl
test/execflags/gbt/getenv.execenv
test/execflags/gbt/getenv.good
test/execflags/gbt/getenv.numlocales
test/execflags/gbt/getenv.skipif
  Add a test that runs only for comm=gasnet, and checks that a user
  environment variable is available.
For GASNet udp conduit + ssh spawner, send env to user prog via -E options.

This modifies our amudprun launcher to send all of the environment
variables to the user program instances via -E options.  Unfortunately,
doing so requires an update to GASNet, because the udp conduit's ssh
spawner can only handle 1024-byte command lines and the ones this mod
causes us to create are quite a lot larger than that.

The file-specific changes are as follows.

runtime/src/arg.c
Send a -E option to the user (*_real) program for every environment
setting.

third-party/gasnet/GASNet-1.22.0/other/amudp/amudp_spawn.cpp
Modify the udp conduit's ssh spawner to handl;e command lines of
arbitrary length.

third-party/gasnet/GASNet-1.22.0/gasnet_trace.c
Allow for much longer command lines in the tracing code.  I didn't do a
full solution for arbitrary-length command lines here, because command
line buffers with statrically determined lengths are everywhere in
GASNet and where would it all end?

test/execflags/gbt/getenv.good
test/execflags/gbt/getenv.prediff
Update the test that checks for correct functioning of this feature.
First approach to a helper setenv function for qthreads

Want a helper function for qthreads to setenvs because qthreads has two
varations of each env var QT_VAR and QTHREAD_VAR and it's easy to forget to
check both. This also adds warnings if we don't set because the qthreads env
vars were already set by a user.
Update helper routine and actually use it

This updates the chpl_qt_setenv function with some more debug info and sets
the QTHREAD_ version of the env var too (just incase the precedence of QT_
every changes in the qthreads source.)

Also adds a TODO for the CALL_STACK env var and changes our uses of setenv to
chpl_qt_setenv
Didn't quote setting "core"
Fixes some bugs with print formatters that clang reports, but gcc doesn't

Just changes some print formatters.

Note that clang gives us a bunch of warnings about qthreads code that I shared
with the qthreads team. These were the only ones in "our" source and not in
qthreads proper
Add ability to remove a file or directory from Chapel code by
specifying its name, as well as tests of that functionality.
Clean up changes to rename: I misspelled occurred, and I decided to use
2> for the preexec error message instead of just repeating it.
Put the GASNet source files back how they were. I'm going to apply the
official GASNet version of the changes to those files instead.
Remove arbitrary limit on command line length

This commit is a minor variation on one contributed by Greg Titus
of Cray.  The purpose is to remove the arbitrary 1024-character
limit on the length of the ssh command line run via system() when
AMUDP is using SPAWNFN=S.  This allows for a much longer command
line, as required by the Chapel runtime when using this spawner.
Merge pull request #192 from lydia-duncan/fileRemove

Add ability to remove a file/directory [reviewed by hilde]

Add ability to remove a file or directory using Chapel code. This follows the same
strategy as the C remove function - it will complain if the file to be deleted does not
exist, or if the directory to be deleted is not empty.

Details:
modules/standard/IO.chpl: Adds two functions removeFile, one which throws an
ioerror if one occurred and one which merely returns the error via an out
argument to the function. Both take in the name of the file or directory to be
removed. While I was there, I checked my spelling.
runtime/include/qio/qio.h
runtime/src/qio/qio.c: Adds backend support for the removeFile function in the form
of qio_file_remove. This function calls the C function remove on the given
filename and returns a qioerr translation of any error that may have occurred.
Another comment spellcheck.
test/io/lydia/remove: Adds four tests of the functionality - removing a file and an
empty directory work as expected, removing a file that doesn't exist generates
an error, and removing a non-empty directory generates an error.
test/io/lydia/rename: Altered my preexec so that it sends errors to the .exec.out.tmp
file instead of detecting if one occurred and sending a generic error.
Adding annotation for performance hit on array vs. ddata comparison
Merge pull request #193 from lydia-duncan/annotate

Adding annotation for performance hit on array vs. ddata comparison [trivial]

Occurred on 05/31/14.
Merge pull request #188 from ronawho/fix-chapel-qthreads-warnings

Fixes some bugs with print formatters that clang reports, but gcc doesn't

[reviewed by @gbtitus]

Just changes some print formatters.

Note that clang gives us a bunch of warnings about qthreads code that I shared
with the qthreads team. These were the only ones in "our" source and not in
qthreads proper
Fix some typos and when we print override message

Now only prints override message we actually overrode, rather than just if we
were able to set something.
Make eitherSet a chpl_bool
Merge pull request #187 from ronawho/qthreads-setenv

Add a helper function to set a qthreads env var

[reviewed by @gbtitus]

This is meant to mirror setenv functionality, but qthreads has two environment
variables for every setting: a QT_ and a QTHREAD_ version. We often forget to
think about both so this wraps the overriding logic. In verbose mode it prints
out if we overrode values, or if we were prevented from setting values because
they existed (and override was 0.)

Note that unlike setenv it is a void function and doesn't check if the value
to set contains an "=" or if the value is NULL, however I can update it if that
seems useful. We previously just ignored any errors anyways and since this is
internal use only, it seems fine.

This also puts a note at STACK_SIZE so we don't forget that we want to update
it's behavior.

I have some upcoming changes that will change qthread env vars and this is
something I always forget about when setting a qthread env var and I think it
makes setting a qthread env var cleaner, even though the function is kind of
large for what it does.
Merge pull request #194 from gbtitus/amudprun-forward-env

with GASNet udp conduit and ssh spawning, forward the environment

[Reviewed by Sung.]

GASNet's udp conduit and ssh spawner do not forward the environment from
the launching process to the user processes. We therefore need to do it
ourselves. To achieve this, in our amudprun launcher add a -E option
for each environment variable to the command line for the user program.

runtime/src/launch/amudprun/launch-amudprun.c
If we are using the ssh spawner, add the environment to the user
program command line via the new -E option.

While here, I also did a little cleaning up. I moved nlbuf into the
only function that uses it. While doing so I renamed _nlbuf to nlbuf;
the leading '' seemed extraneous. I also changed sprintf(3) to
snprintf(3) in the two places where we print into limited-size
buffers. The buffers should always be long enough, but it's still
good style. And, I got rid of a pair of comments that didn't seem to
be adding anything.

runtime/src/arg.c
Don't print a warning when we see a -E option for an env var that is
already set. It turns out there are lots of these, set by various
things that run before the user executable in the remote ssh session.
The warnings are therefore unavoidable and just add noise.

third-party/gasnet/GASNet-1.22.0/other/amudp/amudp_spawn.cpp
Allow command lines of arbitrary length in the udp conduit's ssh
spawner. The old code only allowed 1024 characters, used a fixed
size buffer, and didn't check for overflow. Adding the entire
environment to the command line typically requires way more than 1024
characters. The change here duplicates this GASNet commit:
https://bitbucket.org/berkeleylab/gasnet/commits/1abde2638f58790b6e649ad23d\
42a19a6b3166d3

This is a minor modification of some code I sent Paul Hargrove. To
ease future merges, I'm committing his version instead of my original.
(I committed and then backed out mine in my branch, so anyone curious
can dig it up.)

test/execflags/gbt/getenv.chpl
test/execflags/gbt/getenv.execenv
test/execflags/gbt/getenv.good
test/execflags/gbt/getenv.numlocales
test/execflags/gbt/getenv.prediff
test/execflags/gbt/getenv.skipif
Add a test that runs only for comm=gasnet, and checks that a user
environment variable is available.