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.
Merge branch 'sentinel-checks' into iiglue-read-multiple

Conflicts:
	IIGlueReader.cc