Fix handling of function declarations building: template/member , defining/non-defining. Added assertion in templated buildDefiningFunctionDeclaration_T function, the argument first_nondefining_decl NEED to be a 1st non-defn declaration

Conflicts:

	src/frontend/CxxFrontend/EDG
	src/midend/astDiagnostics/AstConsistencyTests.C
Merge branch 'tristanvdb/bugfix' of rosecompiler1.llnl.gov:rose/edg4x/rose
Added new API for symbol handling.
Added new API for symbol handling, fixed more symbol table bugs, fixed name qualification of template parameters in SgConstructorInitializer when the class does not have explicit default constructor, and migrated symbol table support to use a single low-level templated function, added template parameter list handling to symbol table support, worked on performance improvements to symbol table support.
Fixed Fortran specific problem with assertions added by Tristan (commented out, only effected Fortran and was not previously tested).
Merging with fix on dquinlan/dq-edg4x-rc.
Merging with fix on dquinlan/dq-edg4x-rc.
Merging with fix on dquinlan/dq-edg4x-rc.
Fixed some symbol table API issues to have default arguments and be more consistant with older code.
(Tests) Fix Makefile bug causing redundant make-check

As of b9fe5435a, C++ test codes include file paths in their
file names:

  ```Makefile
  ROSE__CXX_TESTS = /path/to/cxx/test.cpp
  ```

This confuses Make because the corresponding object files,
and therefore the Make targets, have paths in their names,
but the generated object files are not located at the path
specified in the name of the target:

   ```Makefile
   ROSE__CXX_OBJECTS = ${ROSE__CXX_TESTS:.cpp=.o}

   $(ROSE__CXX_OBJECTS):
       <compile>
   ```

The `<compile>` step generates the object file in the
current directory, not at "/path/to/cxx/". So Make will
always run the targets `$(ROSE__CXX_OBJECTS)` since it
thinks they are all out-of-date (non-existant).
Fixed some symbol table API issuse and bugs demonstrated in copyAST_tests and mergeAST_tests (commented out mergeTest_06.C for now (see notes in Makefile.am)).
Fixed new IR node graph support to off by default and removed template paramenter parent requirement (template parameters are shared so that pointer equality can be used for template parameter equality tests in symbol table handling)).
(Tests) Replace $(builddir) with explicit "./" path

Older versions of Autoconf do not automatically define
the Makefile variable `$(builddir)`, therefore this
variable will expand to the empty string:

    "$(builddir)/$$(basename "$@")"

Expands to:

    "/$$(basename "$@")"

Resulting in a "Permission Denied" error due to the
fact that "/" is a root system path.

The fix is to simply remove the usage of $(builddir):

    "./$$(basename "$@")"

----
Also removed unncessary copying of source code file to
build directory.
(Tests) Remove path from $(ROSE__CXX_TESTS) as new default

Rather than include the complete file path for each C++
test code in $(ROSE__CXX_TESTS), we force users to utilize
$(ROSE__CXX_TESTS_DIR) in conjunction with the actual list
of test codes specified in $(ROSE__CXX_TESTS).

This new usage is necessary to simplify the process of using
the $(ROSE__CXX_TESTS), the global list of test codes.

-----
TIP: A section of code worth pointing out:

    ```Makefile
    $(TEST_Objects): %.o: $(ROSE__CXX_TESTS_DIR)/%.C
    ```

The `%` is called a "% Stem" and essentially acts as a wild
card match. An example will best illustrate its use:

   ```Makefile
   hello.o: %.o: /my/src/dir/path/%.C
   ```

`%` will match "hello" and therefore this line of code
would expand to:

   ```Makefile
   hello.o: %.o: /my/src/dir/path/hello.C
   ```
Fixed Ben's reported bug, commented out some analysis tests that were not portable (and will be replaced shortly) with the new symbol table support (including 3 omplowering fortran tests that we need to review with Liao).
Fixed merge conflict.