Remove obsolete entries from .gitignore
Overhaul compiler detection again.

All of the clever "try to find all of the compilers that we have"
logic is gone.  You can either list all the compilers you want to
run on the command line to driver.py, or you can accept the default,
which is any of "g++" and "clang++" that exist.  It still knows how
to detect necessary command line options to get C++11 mode and/or
libc++ turned on.

The big win here is that we no longer have to try to see through
symlinks and shell scripts.  The big lose is that we don't know how
to use g++ with libc++ anymore, but that was never all that reliable,
and it shouldn't be *that* hard to add back if I decide that I care
enough.

Also, once compilers have been probed, the set of working compilers +
switches is recorded in a file ("compilers.ini") in the source directory,
so you don't have to wait for it to re-probe them every single time you
run the test suite.
Flatten the directory hierarchy.

Instead of a bunch of Python modules in the test/ subdirectory, there
are now just two self-contained programs at top level: runtests.py and
test_fmt_gen.py.
Tidy headers and master control of Python programs.
One-line mistake that somehow got missed until now.
Reduce the number of subtests by a factor of about five.