Fix bug in cache
Stop adding duplicate fences in waitFor

Fences I added here are also added by the compiler
when --cache-remote is enabled, but they don't do
anything if --cache-remote is not enabled, so they
don't need to be explicitly included here.
Relax task counting fences, add barrier fence

The task counting atomics don't need to imply fences
as these are handled elsewhere and we're really just
updating a counter.

For the barrier here, it's waiting on (not atomic)
local memory to change from a remote locale's put - which
is not legit according to the memory model... add
a fence (but I'd like to see a better barrier).
Fix problems with NetworkAtomics from r23794

r22107 fixed some wrong return types for Atomics.chpl,
and r23435 and r23472 fixed that for NetworkAtomics.chpl,
but my patch r23794 inadverdently undid some of these changes.

Here I put the changes back. Some other notes:
 - I added explicit return types to read and peek methods.
   That seemed to make it fit in better but the corresponding
   change would also need to be done in Atomics.chpl for peek.

 - I did not add :void return types to e.g. add or sub methods,
   but somebody could do that if it's important to match the style
   used in Atomics.chpl

 - I fixed peek and poke for ratomicflag to work with bool instead
   of int(64).

Tested with 'make check'.
Merge remote-tracking branch 'upstream/master' into cache_fixes
Comment fix.
Move fence to top of loop, comment changes.
Responds to Greg's request.
Add an "_enum_first" function to the language.

For each enum type, an _enum_first function is generated, which returns the
first enumeration specified when the type was created.
Basic test case to lock in behavior
Cleanup superflous #includes, move #include "stringutil.h" to the top of stringutil.cpp, resolve the fallout in stringutil.h
Mostly "whitespace" changes to format to an 80-column convention where easy to do
Localize the business logic that processes use statements
Split getUsedModule in to two functions; one function to handle the "initialization" call (which use to rely on (useCall == NULL), and a second to handle the "natural" recursion
Rename add_class_to_hierarchy to use camelCase.  Split the implementation in to 2 functions; the first function handles the initialization case where localSeenPtr had the default value of NULL in the original definition, and the second function handles the "true recursion".
Split lookup in to 2 functions; one for the init case and a second for the true recursion
Convert the recursive version of lookup to be single-entry/single-exit at the cost of an extra level of nesting for the bulk of the definition.  I assert definition is too long and nesting issue would be less noticeable with some refactoring
Split buildBreadthFirstModuleList in to 2 functions; one for the init and one for the "true recursion"
Fix "typo"
Adding my changes to the minimalModules test. With default initialization,
these tests would not work otherwise.
This adds the compiler generation of the defaultOf for externs, and removes
the previous handling of externs from functionResolution.