Move “abstract flags” concept from CxxCompiler to Tool