Convert GObject Introspection metadata into IIGlue JSON format.

This simple XSLT script expects the GObject Introspection metadata to
already have been extracted from the source code as a GIR XML
document.  The output is in JSON format, structured in the same way as
IIGlue analysis output.  It's definitely not *complete* IIGlue
analysis output; we only convert the small subset of IIGlue
annotations that our own IIGlueReader class expects to find.

The intent of this script is to let us pretend to have run IIGlue on
libraries that other people have already hand-annotated.  Rather than
actually running IIGlue, we extract IIGlue-like information from the
annotations already present.
Minor indentation fixes.
Add (and use) header files declaring the functions defined in these tests.

In the near future I'll be adding another test that needs to see
declarations of these same functions.  Header files are the right way to
share declarations among multiple compilation units.
Remove warning about having no iiglue file to read.

LLVM will already issue a warning if the "-iiglue-read-file" flag is not
given at least once, because we've marked that as a required option.  I
don't think checking for an empty filename too is really useful here.
Use argument slot numbers if we cannot find a formal argument's name.

Formals can be unnamed if the code was really written that way; this is a
common style in C++ for formal arguments that are not actually used by the
called function.  Formals can also be unnamed if the function is declared
but not defined in this module.  Either way, I find it better to see an
argument described as "foo::2" (for argument #2 to function foo) rather
than as just "foo::" if the name is unknown.
Allow "-iiglue-read-file" to be used multiple times to read multiple files.

This looks like a giant change, but really not.  Most of the changed lines
are just added indentation due to wrapping a loop around existing logic.
Allow more than one iiglue file among the list of sources.

We now consider the source list to be any jumbled mix of LLVM bitcode
files, LLVM plugins, and iiglue analysis results.  To produce the right
command line for running our own plugin, we walk through the source list
and emit whatever flag(s) should correspond to each source file depending
on its extension.  For example, a file ending in ".json" is taken to be
an iiglue analysis results file, and is preceded on the command line with
an "-iiglue-read-file" flag.
Remove a construction variable that is apparently no longer used anywhere.
Extract logic for running a single test vs. running multiple tests.

This will make it easier to run specific tests with custom settings, in
case we need to do anything nonstandard.
Add a test that reads multiple iiglue analysis result files.

The only thing a little weird about this is that we don't get names for the
formal arguments to externally-defined functions.  So in the IIGlueReader
debug output, these arguments are identified by slot number (counting from
zero) rather than by name.  That's about the best we can do with the
information Clang and LLVM provide.  It's not as readable as having proper
formal argument names, but it's still deterministic and unambiguous, and
therefore suitable for use in a regression test.
Commit containing various fixes to FindSentinels,
NullAnnotator, and IIGlueReader allowing the NullAnnotator
to be run on the glib library.
Merge branch 'sentinel-checks' into iiglue-read-multiple

Conflicts:
	IIGlueReader.cc
Updated NullAnnotator to spit out results for all functions,
not just ones with array arguments, updated the cLibrary based
on newest results, updated .gitignore to overlook the output.json
file.
Removed extra trailing , in cLibrary.
Fixed minor issue causing json files to be produced incorrectly.
Added a python script to compute some statistics about the
output from the NullAnnotator. Initial results look very
promising on glib, but completely ignore varags. I also
added my answer.json file, which is where I store my
"correct answers" to the glib output.
Updated tests, answers, c functions, , more stats in summary, and
IIGlueReader now has the option to overreport iiglue answers using
-overreport. The tests were updated to reflect that we now print which
numerical value was associated with the annotation for easier reading,
and I added a new test ensuring that I can report that a function is
definitely not null terminated (currently this happens only if a function
contains a loop with a skippable null check).
More fixes to answers, summary reports more accurate,
and the NullAnnotator now reports the name of each argument
to avoid confusion.
Updated NullAnnotatorSummary for better output.
Updated FindSentinels to handle PHI nodes of arguments.