Flexible compilation modes now exist and are used somewhat.

CompilationMode objects can now provide a whole set of options, not
just a pair of booleans; responsibility for tracking the options
corresponding to various C-standard levels shifts to Metadata; the
intended test matrix is documented, and we set up modes for part of it.

Still to do on this patch series: implement test for the highest
supported POSIX conformance level, and for special options being
required for thread support.
I'm not sure we'll end up using this file, but we might.