Add new AstSgNodeListAttribute to support an attribute containing a list of SgNode
Add support for new SgJavaPackageDeclaration node; fix code for SgJavaPackageStatement
fix get_mangled() function for SgTemplateParameterPtrList
Add new option -rose:java:encoding
restructure the Java translator in order to support processing of multiple input files at a time
Merge branch 'master' of rosecompiler1.llnl.gov:rose/edg4x/rose into charles4/charles4-java-rc

Conflicts:
	src/frontend/ECJ_ROSE_Connection/java_support.C
	src/frontend/SageIII/sageInterface/sageBuilder.C
New component to convert Unicode to Utf8 and vice-versa
move checking of conflicting class named to the Java side while processing input produced by ECJ
Use new Utf8 component to convert string literal into Unicode during unparsing
Use new hierarchical representation for packages;  Process Java throw exception list using the set_exceptionSpecification method in SgFunctionDeclaration; remove Aliasing code for imported types as Aliasing is not needed for Java
Merge branch 'master' of rosecompiler1.llnl.gov:rose/edg4x/rose into charles4/charles4-java-rc
Merge branch 'charles4/charles4-java-rc' of rosecompiler1.llnl.gov:rose/edg4x/rose

Conflicts:
	.gitmodules
	src/backend/unparser/unparser.C
(Frontend) Remove extra #include
(CLI) (Darwin) Add initial support for -dylib_file

The Darwin linker supports this commandline option:

    -dylib_file <something>:<something>

Though I have not found any detailed description in
documentation.
(CLI) Fix handling of -I processing to allow space between argument

This commit allows a user to specify the header file include path
option in either of these two standard formats:

    1)  -I<path>    No space separating option and argument

    2)  -I <path>   Space(s) separating option and argument

Current CLI processing assumes that there is no space, case #1. So
when ROSE CLI processing encounters case #2, ROSE ends up treating
the <path> argument as binary source file.

This error occurred with this commandline:

    ```bash
    $ identityTranslator -I/some/header/path -print-libgcc-file-name -rose:verbose 3
    ...
    ######################### Inside of CommandlineProcessing::generateSourceFilenames() ############################
    CommandlineProcessing::isExecutableFilename(): name = /some/header/path validExecutableFileSuffixes.size() = 2
    sourceFileList = = /some/header/path
    ...
    ```

Which failed, rather than successfully outputting the GCC library
(as this commit fixes):

    ```bash
    $ identityTranslator -I/some/header/path -print-libgcc-file-name
    /path/to/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.4.5/libgcc.a
    ```

NOTE: WARN if <path> argument does not exist. This cannot be FATAL
since most build systems will contain -I options with invalid paths,
for a variety of reasons.

Conflicts:
	src/frontend/SageIII/sage_support/sage_support.cpp
(KeepGoing) Refactor Signal Handling into keep_going.[h,cpp]

* Refactor KeepGoing support into separate files to reduce the
  clutter in the core of ROSE.

* Adopt policy for setting error codes:

  Set error code(s) local to the failing function. In the case
  of KeepGoing exception/signal handling, the caller becomes
  responsible for setting the failure code(s).

* Set global variable to toggle the KeepGoing feature:

    ROSE::KeepGoing:g_keep_going

  We #define these convenience macros:

      * KEEP_GOING_CAUGHT_FRONTEND_SIGNAL
      * KEEP_GOING_CAUGHT_FRONTEND_SECONDARY_PASS_SIGNAL
      * KEEP_GOING_CAUGHT_BACKEND_UNPARSER_SIGNAL

  Signal/exception handling must be added wherever a loop
  over all the files occurs. This allows us to capture the
  overall status of ROSE processing if multiple files are
  provided.

* Disable AstPerformance processing

  ROSE usually segfaults in AstPerformance processing when
  ROSE is run in -rose:keep_going mode. Therefore, we will
  "disable" AstPerformance processing when KeepGoing is enabled.

(KeepGoingTranslator)

* Add new CLI options for reporting:

     --report-fail    File reporting ROSE failures
     --report-pass    File reporting ROSE successes

* Add new output format to include error codes:

     ss << filename << " "
         << file->get_frontendErrorCode() << " "
         << file->get_unparserErrorCode() << " "
         << file->get_backendCompilerErrorCode() << " "
         << file->get_unparsedFileFailedCompilation();

Conflicts:
	src/backend/unparser/unparser.C

Conflicts:
	src/backend/unparser/unparser.C
	src/frontend/SageIII/sage_support/sage_support.cpp
(KeepGoing) Remove redundant assertion that causes failure

Assertion is not needed, as the case is handled by the
proceeding conditional:

    ```C++
    if (original_file.string() != unparsed_file.string())
    ```

Moreover, this assertion will always fail in the case
where the unparsed file fails compilation, and compileOutput
is called again on the original input file. This is because,
before calling compileOutput the second time, we set the
unparsed file name to actually be the original file name:

    ```C++
    set_unparse_output_filename(outputFilename);
    ```

Therefore, the two strings will be equal.
(CMake) Add Java Utf8.C file to build system
(Java) Define static class members in Utf8.C
An SgFileList does not contain only source files

Commit a919232aa6cbc8911ade1aa93bd5b29ec4a4367b make the mistake of assuming
that all members of an SgFileList are SgSourceFile nodes.  This isn't true
during binary analysis, where the list may also contain SgAsmBinaryComposite
that represents binary specimens along with their optional dynamically linked
libraries.  The result was that 'file' was an unchecked null pointer.

Conflicts:
	src/backend/unparser/unparser.C