Hadrian: Stop using the in-tree Cabal
The fact that Hadrian currently depends on the in-tree Cabal library has proven to be both slow and fragile (see #16259 (closed)). This MR proposes to revert to depending on a stable release of Cabal instead.
Pros:
- This will make Hadrian faster to build if the (stable) Cabal library is shared with other projects on the same machine.
- We don't need to adapt/rebuild Hadrian every time the in-tree Cabal library is changed. We will upgrade to a new Cabal version only when need be.
- This will hopefully allow us to avoid issues like the one described in #16259 (closed).
Cons:
- We will not be able to parse GHC's
.cabal
files if they use bleeding-edge features of Cabal. And arguably, they shouldn't.