Uses/cabal.mk: Rework MASTER_SITES and DISTFILES handling.
This change removes duplicated entries from MASTER_SITES and DISTFILES
variables. Now the MASTER_SITES variable will contain single Hackage URL without
any group for the simplest case and with :_cabal_mk_hackage group in nodefault
This change opens a path to using non-Hackage Cabal repositories
(needed for Cardano) and pulling in .cabal revisions without using patches.
Unfortunately, this change results in a large churn in Haskell ports distinfos.
To make this churn less useless, refresh all Haskell dependencies in all ports.
Uses/cabal.mk: Introduce CABAL_REVISION knob.
This knob allows pulling in a revised .cabal file for a Haskell package
being ported. This allows us to drop local patches that were serving the