Use unique values for abstract flags
Use CxxCompiler.CFLAG_DYNLIB instead of special-case logic in GxxCompiler

Also make the “final output” concept and implementation less clunky and
more versatile.