Compat version of readProcessWithExitCode

* Add a new module, Distribution.Client.Compat.Process, with a
  function readProcessWithExitCode.  Unlike the one from
  System.Process it always catches "does not exist" errors and turns
  them into ExitFailures.

* Change all calls to readProcessWithExitCode to use the new version.

* Fixes #1613.