Cache compilers parsed from config files
Cache compilers parsed from config files

- Spack ends up constructing compilers frequently from YAML data.

- This caches the result of parsing the compiler config

- The logic in compilers/__init__.py could use a bigger cleanup, but this
  makes concretization much faster for now.

- on macOS, this also ensures that xcrun is called only twice, as opposed
  to every time a new compiler object is constructed.

skosukhin/spack,EmreAtes/spack,LLNL/spack,tmerrick1/spack,EmreAtes/spack,iulian787/spack,tmerrick1/spack,mfherbst/spack,lgarren/spack,iulian787/spack,matthiasdiener/spack,skosukhin/spack,iulian787/spack,matthiasdiener/spack,lgarren/spack,krafczyk/spack,mfherbst/spack,EmreAtes/spack,lgarren/spack,skosukhin/spack,matthiasdiener/spack,mfherbst/spack,krafczyk/spack,matthiasdiener/spack,LLNL/spack,EmreAtes/spack,mfherbst/spack,matthiasdiener/spack,krafczyk/spack,iulian787/spack,tmerrick1/spack,mfherbst/spack,EmreAtes/spack,tmerrick1/spack,LLNL/spack,lgarren/spack,krafczyk/spack,skosukhin/spack,LLNL/spack,lgarren/spack,tmerrick1/spack,LLNL/spack,krafczyk/spack,iulian787/spack,skosukhin/spack