(Snippet Insertion) New mechanism for inserting small pieces of code

The Snippet mechanism allows code snippets to be created from a library
of snippets stored in a C source file, and then those snippets to be
inlined into a target AST. Although this approach cannot handle all
situations, it's often simpler than trying to create each snippet by
calling the SageBuilder interface.
(Snippet Insertion) Parameterized types
(Snippet Insertion) Rename temporary variables
(Snippet Insertion) Another way to rename variables.
(Snippet Insertion) Test cases
(Snippet Insertion) More fixing Sg_File_Info; more tests

The Sg_File_Info fixups are kludgy, but seem to be necessary
in order to deep-copied and then inserted with
SageInterface::insertStatementAfter if the declaration's original
source file isn't the same as the source file into which it was
copied and inserted.
(Snippet Insertion) Checkpoint
(Snippet Insertion) Finshed this feature

* More documentation in Snippets.h

* Include directives are inserted when necessary

* Injection can be done two ways: by copying the snippet body
  or by copying each individual statement without the snippet
  scope.

* Local variables can be inserted at the beginning or end of
  the list of local variables at the insertion point.

* Recursive insertion can be enabled or disabled per snippet.

* Option to copy all snippet function definitions into the
  global scope of the insertion point's file.
(Snippet Insertion) Added more test cases
(Unparser) Disabled an assertion, but not the warning message

This assertion prevented a deep-copy of a SgFunctionDeclaration with
a defintion from being inserted into the AST for a different source
file.
(Snippet Insertion) Fix read-after-free bug

The snippet destructor should not remove itself from the
snippet registry because the only time the destructor is
called is during removal from the registry.
(Snippet Insertion) Documentation
Added "using namespace rose" where necessary.

The files in this commit use features from the "rose" namespace
but are not themselves in the "rose" namespace yet.  Eventually
these files will be incorporated into the "rose" namespace and
the "using namespace rose" can go away.
(Snippets) Fixed compile error since "cdecl" seems to be defined somewhere
(Snippets) Fixed bug related to include directives and global variables

Since C preprocessor directives are attached to other AST nodes, whenever
we copied something from the snippet AST into the application AST, we
also copied the directives along with it.  That meant sometimes copying
an #include directive along with the global variable that followed it even
though the #include wasn't actually needed.

This commit changes the behavior so that #include directives are always
removed from the root node of any AST copied from the snippet file.
Merge remote branch 'rc/master' into snippets
(Snippets) Black-listing for copying global decls

If a snippet declaration at global scope is marked with a comment
(anywhere in that decl's AST) containing "DO_NOT_INSERT" then the
declaration is not copied into the application's global scope.
(Snippets) We no longer need -rose:skipfinalCompileStep
(Snippets) Changed command-line args for tests in preparation for Java support

* The --test:snippet switch separates the file and function name with
  a comma instead of a dot.  The file name must include the ".c" or
  ".java" extension, and the function name must be fully qualified.

* The --test:ipoint-function switch's function name must be fully
  qualified.
Added support to fixup the AST of the snippet after being inserted into the AST (making it consistant).