Remove modUsesSet from ModuleSymbol and localize data management of module use information to ModuleSymbol
Merge remote-tracking branch 'chapel-lang/master' into mod-use-2
1) Insert a use-statement for ChapelStandard during parse 2) remove modUses after resolve
Add a comment and some code to clarify that newAst could be NULL
Adopt names moduleUseAdd, moduleUseRemove, and moduleUseClear consistently for ModuleSymbol and BlockStmt
Merge pull request #49 from noakesmichael/mod-use-2

Modify the way module uses are tracked and and managed.



(1) Update the parser so that ChapelStandard is included by inserting
a use-statement rather than sticking it directly in to the internal
data structures.  This makes thinking about the AST at the end of
parsing more consistent to the benefit of the compiler and interpreter.



(2) eliminate modUseSet from ModuleSymbol; the existing codebase spent
effort keeping modUseList and modUseSet in sync for negligible benefit



(3) centralize the management of ModuleSymbol::modUseList and
BlockStmt::modUses to those classes rather than being spread over the passes.

The new function ModuleSymbol::moduleUseAdd has a "temporary 
work-around" for an ordering issue in functionResolution that is
sensitive to the ordering of modules in this list for about 12 tests.
That issue needs more attention at some point.



(4) Clear BlockStmt::modUses after functionResolution.  This may also
prove to be a "temporary work-around" for issues in managing the
module use data-structures.  It is observably true that these lists
aren't used after functionResolution but they still change in
"unpredictable" ways.  This was causing problems in
deadCodeElimination.  Clearing these lists resolved the
issue for deadCodeElimination and was approved by Brad, but this
solution may ultimately prove to be short sighted.


Compiled: clang STD and gcc STD/LLVM
Tested:	  paratest --verify   woo hoo
Review:	  Elliot and Tom