(Java) SageInterface::processFile returns the SgFile node
(Snippets) Java uses SageInterface::processFile
(Java) SageInterface::preprocessCompilationUnit returns the SgFile node
(Java) Temporary test case to exercise preprocessCompilationUnit

To run
 * create directory $CWD/snippets/Number_Handling/CWE_190
 * create a java file CWE_190_0.java defining class "CWE_190_0"
 * create directory rose-output if it doesn't already exist
 * run "make"
 * run "make test_addJavaSource2"
(Snippets) New java parsing
Revert "(Java) Temporary test case to exercise preprocessCompilationUnit"

This reverts commit 06c439b3493c9a17ee6398a6506988058b76028c.

Commit 06c439 was a temporary test.
(Build) Switched config to use Java 7
(Snippets) Better parsing for Java snippets
(Snippets) Fixed directory creation workaround
(Snippets) Bug work-around should delete the top temp directory

This directory was being deleted when the package name was empty.
(Snippets) Avoid calling SageInterface::findOrInsertJavaPackage for "" package.

findOrInsertJavaPackage fails when the package name is "". The failure
is a syntax error before the semicolon in the generated code "package ;"

Therefore, when the package name is empty (i.e., no "package" statement
in the snippet) we avoid calling findOrInsertJavaPackage and just hope
that the "" package was already defined.

This bug has been reported to Philippe.
(Snippets) Added a Java test case where the target is in a package
Merge remote branch 'rc/master' into snippets

Conflicts:
	src/frontend/SageIII/sageInterface/sageInterface.C
	src/frontend/SageIII/sageInterface/sageInterface.h
		SageInterface::preprocessCompilationUnit()
		+ My branch added a return value
		+ master added an extra argument
(Snippets) Removed comment after #include

It turns out that all of the snippet #include directives are followed
by a comment, so I removed this one because a user reported a problem
if the directive was not followed by a comment.
(Snippets) Added test for non-injection

If the --test::ipoint=none switch is specified for injectSnippets, then
the test does everything except inject the snippet.

Also added test3b.passed as a makefile target to exercise this.
(SageInterface) Added insertStatementBeforeFirstNonDeclaration

* SageInterface::insertStatementBeforeFirstNonDeclaration

  Subtly different than insertStatementAfterLastDeclaration in
  that they behave differently when declarations or non-declarations
  are not contiguous.

* SageInterface::insertStatementListBeforeFirstNonDeclaration

  Same, but takes vector of statements.  The "List" in the name
  even though the argument is a vector is because of the
  precedent set by insertStatementListAfterLastDeclaration.
(Snippets) Changed test to demonstrate errors with declaration insertion

Added a #pragma (kind of SgDeclarationStatement) to demonstrate that when
the user is trying to insert declarations at the end of the declarations
already present in a C scope, using SageInterface::insertStatementAfterLastDeclaration
is the wrong function to use.  The new declarations get inserted after
the last #pragma, which might be nowhere near the things one normally
thinks of as declarations in C.
(Snippets) Fixed bug for inserting local variable declarations for C

Bug was exibited when the target scope contained declarations followed
by non-declarations, followed by a #pragma (which is a type of declaration).
The new variable declarations were inserted after the last #pragma
resulting in invalid C.

The fix is to use insertStatementBeforeFirstNonDeclaration() rather
than insertStatementAfterLastDeclaration().
(Snippets) Added new test that fails an assertion

test8a fails an assertion in SageInterface::insertStatement because
the an AttachedPreprocessingInfoType node is non-null and empty.
(Snippets) Unlink AttachedPreprocessingInfoType from AST if empty

The SageInterface::insertStatement requires that any AttachedPreprocessingInfoType
is not empty. Therefore, if we remove preproecessing info (by discarding of moving,
as with SageInterface::movePreprocessingInfo) we need to go back and also
set the AttachedPreprocessingInfoType of the source node to null if it's empty.