Makes it possible to write unit tests for code under Distribution.Client.*.
Split cabal-install into library and executable components.
This seems harmless enough to me, with the possible exception of requiring Cabal >= 1.8, though I can't imagine that is really a problem. Do we have a policy about how many versions back we can bootstrap?
Cabal.cabal itself requires Cabal >= 1.10.