Improve warning for old versions of HPC

Now the warning message includes mention of the input data that is being
ignored because hpc can't deal with it.

This involves a change of behaviour: when the HPC version cannot be
determined, this is now a fatal error, rather than just assuming an old
version.
Split cabal-install into library and executable components.

Makes it possible to write unit tests for code under Distribution.Client.*.
Merge pull request #1162 from 23Skidoo/split-cabal-install

Split cabal-install into library and executable components.
Merge pull request #1155 from benmachine/hpcmsg

Improve warning for old versions of HPC