Provide initial support for "cabal repl" process type

Two new customization flags are introduced:

- `haskell-process-path-cabal`, and
- `haskell-process-args-cabal-repl`.

Also, a new `cabal-ghci` choice for the `haskell-process-type` option
is added.

When using "cabal repl" mode, the workaround of sending a `:cd`
command on session start as well as adding the autogen-path to the
include path is suppresed, because "cabal repl" takes care of this
already.  Hopefully, we can remove those kludges required by
`cabal-dev`/`cabal-ghci` at some point.

This commit addresses #195.
Fix type of `haskell-process-args-ghci' defcustom
Add new Haskell compilation sub-mode

This is a compilation sub-mode tailored to GHC's compile messages with
some heuristics for supporting Cabal projects in a DWIM fashion. This is
completely orthogonal to haskell-interactive and inf-haskell.

See new "compilation" chapter in the info manual for more details.
Make 3603ec2c3 compatible with Emacs <24.2

A few compilation-related variables are not available in
Emacs version prior to 24.2