Move CompilerSelector logic into build env setup

This moves the CompilerSelector fails_with logic into the build
environment setup, making the compiler selection available before
performing actions that depends on knowing what the compiler is, e.g.
setting up PATH.

ENV.setup_build_environment now optionally takes a Formula argument
to provide the information necessary to do the fails_with, and the new
ENV.validate_cc! extracts the fails_with logic from Build.install.
superenv: don't set CC in ENV.clang/etc.

These methods were overriding CC and causing superenv to potentially
skip the compiler wrapper - especially if no wrapper existed for the
compiler being used, e.g. GNU GCCs.

Closes #22443.
Fixes #22249.
Fixes #22424.
Fixes #22506.
Fixes #22521.
Fixes Homebrew/versions#207.
denominator 4.1.0

Closes #22640.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
csvfix 1.3

Closes #22635.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
xctool 0.1.12

Closes #22616.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
duplicity 0.6.22

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
dwdiff 2.0.7

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
ExifTool 9.37

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
getmail 4.43.0

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
hwloc 1.7.2

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
itexToMML 1.4.11

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
metaproxy 1.3.62

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
monit 5.6

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
parrot (devel) 5.7.0

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
raptor2 2.0.10

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
riak 1.4.2

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
squid 3.3.9

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
swig 2.0.11

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
zabbix 2.0.8

Closes #22622.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
freediameter 1.2

Closes #22630.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>