Refactor to use only a `haskell-process-wrapper-function`.

Following this discussion - https://github.com/haskell/haskell-mode/pull/370#issuecomment-63237778.

This permits to one's own wrapper function.

For example, here is one to use with nix-shell:

```sh
(custom-set-variables '(haskell-process-wrapper-function
                        (lambda (argv) (append (list "nix-shell" "default.nix" "--command" )
                                          (list (shell-quote-argument (mapconcat 'identity argv " ")))))))
```

Unit tests are ok.
Need to test in real life now.