Inhibit electric-indent-mode
Use read-key instead of read-event for module completion (fixes #360)
Accept anything on RET when there's no match in module completion
Sandboxable haskell-mode using haskell-process-wrapper

Following the discussion from
https://github.com/haskell/haskell-mode/pull/350#issuecomment-59434038,
creating a haskell-process-wrapper.
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.
Improve the docstring to show as example a function that actually works.
Use Cask to trigger tests (and solve dependencies)

Follow up from the discussion https://github.com/haskell/haskell-mode/pull/370#discussion_r20136791

Use:
- Install Cask -
http://cask.readthedocs.org/en/latest/guide/installation.html
```sh
curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go |
python
```
- Trigger tests:
```
make check
```
This will use cask only for the tests target.
Propose evm (emacs version manager) for the multiple emacs installation.

Keep only the targets which work.
Is this ok?