Snapshot of the AST debugging code that provides a "node" oriented view of the AST

Add the preliminary code for displaying the AST in a node-oriented fashion.
This submit does not include the changes to driver.cpp needed to add flags
to enable this mode; this code is currently unreachable.


Compiled:  STD on clang, STD/LLVM on gcc
Tested:    Work incomplete but no obvious bugs on simple test programs
Reviewed:  None




git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@23563 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Factor removeUnusedFormals and inline removeRandomJunk().

Inlined
    static void removeRandomJunk()
    {
      removeUnusedGlobals();
      removeRandomCalls();
      removeActualNames();
      removeTypeBlocks();
    }
at its (sole) call location in pruneResolvedTree().

Factored removeUnusedFormals() into
    static void removeFormalTypeAndInitBlocks();
    static void removeMethodTokenFormals();
    static void removeInstantiatedParams();
    static void replaceTypeArgsWithFormalTypeTemps();
    static void replaceValuesWithRuntimeTypes();
    static void removeWhereClauses();
    static void replaceReturnedValuesWIthRuntimeTypes();
by distributing the control structure in the original across the seven kernels.  The
purpose of this change is primarily to make the code more self-documenting, by providing a
name (i.e. the function name) for each of the cleanup actions being taken.

This patch is in preparation for reordering these cleanup operations to support the
insertion of default constructor calls for uninitialized variables/fields.  Some of these
cleanup operations may ultimately be coalesced again to save a bit on the loop overhead --
should profiling indicate that it will have a significant impact.

[tested on / (--verify)]
[reviewed by noakes]


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