Fix cabal repl handling of Ctrl-C

The code here does fix #1448, but since it "borrows" code directly from the process package this may not be the best way to fix it. See for example, http://ghc.haskell.org/trac/ghc/ticket/8419.

Please let me know if I need to change anything so that we can squash this C-c handling bug :)