use CompilerInfo rather than CompilerId for resolving flags and
path templates. CompilerInfo contains more information about the compiler than CompilerId, which just stores the flavour and version. In particular, CompilerInfo knows an AbiTag, which can be used to tell binary incompatible results from the same compiler apart, and detailed information about supported languages and extensions. Some fields in CompilerInfo may be left unknown (Nothing). This can be used in the future to allow partially resolving configurations based on supported languages or extensions.