Added a check for destructive reinstalls.
Added a check for destructive reinstalls.

Some refactoring in Distribution.Client.Install:

  * the linear representation of an install plan is now typed
  * it can be checked for the presence of destructive reinstalls

Currently, Cabal will stop if destructive reinstalls are encountered.
While this should become default behaviour, there has to be a flag
that overrides it.

bennofs/cabal,Helkafen/cabal,valderman/cabal,bennofs/cabal,fpco/cabal,mightybyte/cabal,themoritz/cabal,themoritz/cabal,trskop/cabal,themoritz/cabal,gridaphobe/cabal,x-y-z/cabal,mmakowski/cabal,typelead/epm,edsko/cabal,anton-dessiatov/cabal,fpco/cabal,beni55/cabal,mightybyte/cabal,kolmodin/cabal,edsko/cabal,valderman/cabal,garetxe/cabal,christiaanb/cabal,kosmikus/cabal,garetxe/cabal,plumlife/cabal,ian-ross/cabal,thoughtpolice/cabal,corngood/cabal,Helkafen/cabal,seereason/cabal,randen/cabal,eric-stanley/cabal,fugyk/cabal,sopvop/cabal,rimmington/cabal,sopvop/cabal,plow-technologies/cabal,triplepointfive/cabal,gbaz/cabal,thomie/cabal,Peaker/cabal,mydaum/cabal,thoughtpolice/cabal,x-y-z/cabal,martinvlk/cabal,triplepointfive/cabal,enolan/cabal,eric-stanley/cabal,enolan/cabal,mmakowski/cabal,lukexi/cabal,thomie/cabal,ghc-android/cabal,christiaanb/cabal,rimmington/cabal,corngood/cabal,trskop/cabal,typelead/epm,headprogrammingczar/cabal,kolmodin/cabal,mydaum/cabal,randen/cabal,beni55/cabal,anton-dessiatov/cabal,gridaphobe/cabal,kosmikus/cabal,sopvop/cabal,Heather/cabal,gbaz/cabal,ian-ross/cabal,fugyk/cabal,seereason/cabal,Heather/cabal,martinvlk/cabal,plow-technologies/cabal,headprogrammingczar/cabal,ghc-android/cabal,plumlife/cabal,Peaker/cabal,lukexi/cabal