add -E in user executables

Add -E support in executables, for use by launchers in forwarding the environment to the user program processes when the underlying system launcher can't do so.  The changes are:

runtime/src/arg.c
  The parseArgs() function now takes a mode to tell it whether to parse only the -E options or to do normal parsing.  It also takes a flag telling it whether it's being called in the launcher or not, since we have to skip -E options in normal parsing in the user executable (they've already been handled) but attend to them in the launcher (although, if they are present there, they have a different meaning).

  I didn't want -E parsing to duplicate the case-by-case logic of normal parsing, because that would create a maintenance burden when options changed.  However, during -E parsing we have to be able to skip the options that aren't -E ones, and this requires understanding which have a sub-argument and which do not.  So, I expanded the flagType type and flagList table so that each flag (option) has separate fields for its single-dash form, its sub-argument, and its double-dash form.  That allowed -E parsing to rely on the flagList table to decide when to take into account a sub-argument, without having to worry about exactly which flag was being dealing with.  As a result of this I also had to rewrite printHelpTable() completely, however.

  While here, I also removed some trailing white space on a few lines.

doc/release/README.executing
  Document the new option.

test/execflags/ferguson/help2.good
test/execflags/shannon/configs/help/basehelp.txt
test/execflags/shannon/help.good
  Update the expected "-h" output.

test/execflags/gbt/dash-E.chpl
test/execflags/gbt/dash-E.execopts
test/execflags/gbt/dash-E.good
test/execflags/gbt/dash-E.skipif
  New unit test.