Instead of pruning, make an install plan for the whole environment.

Previously, we used a hack for reinstalling reverse dependencies: we created an
install plan for the sandboxed package and the modified add-source deps and then
pruned the sandboxed package from it. This missed those revdeps that the
sandboxed package didn't depend on and also broke the sandboxed package if it
was installed in the sandboxed package DB (see #1229).

This commit replaces that hack with a more principled approach: we create a plan
for the whole environment (all packages installed in the sandbox), constraining
the modified add-source deps to be reinstalled and the already installed
packages to be preferably not.

Fixes #1229.
Merge pull request #1315 from 23Skidoo/plan-whole-environment

Instead of pruning, make an install plan for the whole environment.
cabal-install: put the Paths_cabal_install.hs and Paths_Cabal.hs in place as expected
disable hackage's preferred-versions (as we don't use it when merge ebuilds)

hackage.haskell.org/00-index.tar contains preferred-versions for some interesting
packages. For now it's 'base-3'.

Otherwise depends generated by hackport differ from ones pulled by ./Setup.hs.
cabal/cabal-install: renamed D.C.Exception -> D.C.ExceptionCI to avoid clash with Cabal's one

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Fix error messages with "cabal update" -> "hackport update" Same fix as marty.rosenberg@gmail.com once did for cabal-install-0.8.2, which we now are replacing.
cabal/cabal-install: renamed D.C.Exception -> D.C.ExceptionCI to avoid clash with Cabal's one

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
forbid cabal to check for self updates