This moves all the compiler detection logic into the new compilers.detect module. This dramatically reduces the size and complexity of Environment.