(Call Graph) Fixed test program

The tester filtered the call graph by looking at the file names for the
SgFunctionDeclaration nodes stored in the CG.  However, it did not try
hard enough to find a file name for nodes for which ROSE only encountered
a defining declaration: the CG stores first-non-defining declarations, and
if ROSE only encountered a function definition then it generates a
first-non-defining declaration that has no file name.

This fixes test02 (which was really two separate tests that can now
be run individually as test02-10 and test02-100).
(Call Graph) Added a warning to the test output, and a check

I'm tired of getting burned by this test every time I come back
to it.  The test depends on its input files being in a certain
directory, and silently *succeeds* (without doing anything) if
they aren't there.

The test now prints a big warning every time it's run, and it
counts to see if any of its inputs came from the magic directory.
If not, it immediately fails.  This still won't catch the case
when only some of the inputs come from a non-magic place, but
it should help.
(Call Graph) Fixed to handle indirect function calls

The call graph analysis failed an assertion for input
like this:
   void f1();
   void f2() {
      void (*g)();
      g();            <----------- here
   }

The new result is that the CG has edges from f2 to f1 and f2 because
the call at the marked line above *could* call either f1 or f2 since
they both have the correct type.
(Call Graph) Improvements to the makefile

* Tests can be run individually

* More parellism possible for "make check", and the output
  is not so mixed up when running in parallel.

* "make check" generate output only for failing tests; tests
  that passed have their output saved in a file.

* Passed tests are not re-run for every "make check"

* Output of each test is stored in a *.passed or *.failed file so
  it can be investigated later.  It also makes it clear which
  tests actually passed or failed.

* "make clean" is careful not to delete things that developers
  put there during debugging sessions.

* Removed lots of unused cruft from the makefile and the directory.

* Cleaned up the source directory by moving the multitude of
  specimen and answer files into subdirectories based on which test
  they're used for.

* Removed tests for specimens that have no functions, or whose functions
  change based on the GCC version or configuration switches.  It's
  pointless to test call graph analysis on an input that has no functions!
(Call Graph) Fixed tests related to templates

When ROSE instantiates a class template, member function template, or
function template it creates the instantiated AST as being compiler-generated.
Since the CG test filters out all declarations that don't come from files
in certain magic directories, it ends up filtering out the instantiated
templates.  This makes the test results different than for EDG3.
(Call Graph) Fixed test cases with compiler-generate default c'tor

Compiler-generated default constructors are sometimes (but not always)
marked as having come from the file where the class/struct is defined,
rather than being marked as compiler generated.

For a counter example, see test2006_58.C, where Bar's default constructor
is marked as coming from test2006_58.C, but Baz's default constructor is
not.
(Call Graph) Removed test specimens that use anonymous structs

Inputs with anonymous class/struct types cannot be tested with
the framework as designed because ROSE generates a different
name for the class/struct every time it's run (the name includes
the memory address of the AST node).
(Call Graph) Fixed answer for test2005_42.C

The test using EDG3 did not pick up that the line:
   std::greater<int> X();
is a function forward declaration, but EDG4 does.
The test answer has been adjusted to match this.
(Call Graph) Fixed typo comparing return values

The CallGraphAnalysis is_functions_types_equal(f1,f2) accidently
compared the return typ of f1 with itself rather than with f2's
return type.

The change to is_functions_types_equal() not only fixes a failing
assertion, but also changes the answer for the t3_test7 since it
is more selective about which functions match the pointer's type.

The B::B constructor, although compiler generated, appears to
come from the source file, thus changing the output for the t3_test7
test.
(Call Graph) Fixed bug related to virtual functions

This commit fixes two bugs in CallGraphBuilder:

1. The analysis assumed that if a virtual function
   had no definition then it must be pure virtual and
   not callable.

2. The analysis assumed that a call to a virtual function
   could be a call to any function deeper in the hierarchy
   that had the same type, regardless of its name.

These cases were both originally tested, but the test answer
was apparently never verified.
(Call Graph) Added default constructors to the t3_test6.C answers

This updates the t3_test6.C answers the same way as the other answers
were adjusted in commit
  d925813 (Call Graph) Fixed test cases with compiler-generated default c'tor

That is, the compiler-generated default constructors B::B, C::C, D::D, and E::E
are part of the call graph because they are called from main() and ROSE now
places them in their class' source file.
(Call Graph) Fixed the way virtual destructors are handled

* Virtual destructors need not be found by using function type
  comparisons, and must not be found by name.

* Fixed the test2006_119.C answer. Destructors are not part of
  the call graph unless invoked explicitly, in which case the
  virtual destructors are correctly found.
(Call Graph) Fixed a compiler warning in the (unused) VirtualFctsTester
(Empty) Retriggering Jenkins

/jenkins-edg4x/view/Integration/job/200-compile_with_rose-cherokee/96

Cloning repository rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git
git --version
git version 1.7.5
ERROR: Error cloning remote repo 'origin' : Could not clone rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git
hudson.plugins.git.GitException: Could not clone rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git
	at hudson.plugins.git.GitAPI.clone(GitAPI.java:271)
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1040)
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:982)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2273)
	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
	at hudson.remoting.Request$2.run(Request.java:326)
	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git /export/tmp.hudson-rose/jenkins/edg4x/workspace/200-compile_with_rose-cherokee" returned status code 128:
Merge remote branch 'origin/master' into HEAD