hadrian/build: Add a way to control the --semaphore flag.
## Summary
I've become *very* aware that cabal --semaphore currently doesn't degrade gracefully. Which makes the current behavior of assuming it works dubious.
I think the better approach is to add a way to control it (flag, env var, whatever) and then set that on for CI jobs and certain configurations where it's known to work. And recommend devs set it locally for faster performance, while leaving it off by default for unknown/unclear configurations.
Optional:
* Operating System:
* System Architecture:
issue