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