Independent subset of cabal packages set

Cabal is moving to a more NPM-like model, which will make dependency resolution much simpler. Each installed package will keep a local copy of its dependencies, trading a little disk space for the headache of installing multiple global packages with mutually exclusive package versioning demands.

Under this model, the subset of packages required to install a set of packages == that set. Though one may be a dependency of the other, each installed copy will keep its own local copy of its dependencies, so Cabal won't consider the dependency installed that way any more.