Improve multilocale initialization

[reviewed by David and Greg]

This commit improves parts of the start up code that initialize data
on remote locales.  On an XE, I saw slight performance improvements
for 32 locales.  I did not have quick access to more locales, but
given small improvements at small numbers of locales, I expect this
change should help going to larger numbers of locales.

modules/internal/ChapelLocale.chpl:

 Parallelize the initOnLocales() iterator for rootLocale
 initialization.  Add a config const to control the minimum number of
 locales per task (minRootLocaleInitPerTask=1).  This is similar to
 dataParMinGranularity, but I did not reuse the value for a couple
 reasons.  For one, it has not been initialized yet, but more
 importantly, if you were tuning either value, you'd probably want a
 different value for each as, the maximum parallelism for the
 rootLocale initialization is numLocales.

modules/internal/MemTracking.chpl

  Rewrote chpl_startTrackingMemory() using a forall loop.

  I also replaced the (incorrect) comments in there with the history I
  pieced together which is as follows.  This code was written prior to
  the existence of parallel iterators for DefaultRectangular.
  Consequently, a coforall loop was used to parallelize over the
  Locales array (which is generally not a good idea).  Then, in order
  to handle the case of users limiting the minimum number of threads
  to 1, a conditional to avoid executing the on-statement in the case
  for locale 0 was used to disable the coforall+on optimization (which
  would result in using nonblocking ons which requires 2 threads on
  locale 0).  Finally, an unnecessary test for here==Locales[0] was
  added when realms were removed (we do not need this, because the
  function is only called from Locale[0]).

modules/internal/ChapelTaskTable.chpl:

  Parallelize task table initialization.  Not sure of the exact
  history here, but it is now safe to iterate over the Locales array
  in parallel when initializing this module, so replaced the for loop
  with a forall.

  Clarified some comments while I was in there.


Test changes
============

Changed .good files for additional data par diagnostics from start up:
 - test/distributions/sungeun/dataPar2.tpl=6.mg=100.good
 - test/distributions/sungeun/dataPar2.tpl=1.good
 - test/distributions/sungeun/dataPar2.tpl=5.good

Reorder instantiations due to parallelism occurring earlier:
 - test/classes/hilde/explainInstantiation.good

Added new config const to -h output:
 - test/execflags/shannon/help.good
 - test/execflags/shannon/configs/help/basehelp.txt
 - test/execflags/ferguson/help2.good




git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@21755 3a8e244f-b0f2-452b-bcba-4c88e055c3ca