Add new --cc= compiler selection option, unify selection logic

As suggested by @adamv in #20251, this adds a new `--cc=` option for choosing a compiler. The main goal of this is to provide a suitable option for the GCC support branch, but it also provides a nice alternative to the `--use-clang`/etc. options we currently use. The argument to the option is a more restrictive set that doesn't accept any of the aliases we've used in the past.

I also took the opportunity to unify the compiler selection logic between superenv and stdenv, which had been drifting apart, and removed the deprecated `HOMEBREW_USE_LLVM`/etc. environment variables.

I'm going to merge this soonish unless there are any objections, thanks!