Fix `inferior-haskell-cabal-of-buf` to handle subsequent calls.
Refactor `haskell-session-{all,installed,project}-modules` functions

This simplifies/improves the implementation a bit and adds a new
optional `DONTCREATE` boolean argument to suppress creating a new
session if it isn't already established. This new flag is useful for use in
yasnippet (see also 7fbcde0):

    # key: imp
    # name: import
    # condition: (= 3 (current-column))
    # --
    import `(haskell-yas-complete "Module: " (haskell-session-all-modules t))`
Remove obsolete `haskell-session-clear-all` function
Factor out recurring regexp literal into `h-i-m-error-regexp` defconst
Add optional count argument to `haskell-interactive-mode-error-{forward,backward}`
Integrate interactive-mode with Emacs' `next-error` facility

This support `next-error-follow-minor-mode` (which can be toggled via
the new interactive-mode keymap binding `C-c C-f`)

Moreover, `RET` now uses `(next-error 0)` when over a compile-message
heading, and with `SPC` `(next-error-no-select 0)` is used.

Note: The default bindings for `{next,previous}-error` are `C-x
\``/`M-g n`/`M-g M-n` and `M-g p`/`M-g M-p` respectively, and work
from all buffers assoicated with the Haskell session (i.e. REPL and
source file buffers).

This addresses #62.
Small formatting tweaks, reshuffle.
Comment out `haskell-process-type` setting

This is not a good default, as not everyone uses `cabal-dev` and it
doesn't work for `.cabal`-less sessions.
Fix docstring markup
Mark `haskell-session-maybe` as autoloaded

This is to make

    emacs -Q -L . -l examples/init.el

work again, as otherwise `haskell-mode-contextual-space` would miss
`haskell-session-maybe`.
Fix thinko in column arithmetic for `-ferror-spans` (re #151)
Add `-ferror-spans` as default for `haskell-process-args-ghci`

This finally resolves #151 as now all pieces (including #62) are in
place for proper `-ferror-spans` support.
Merge pull request #163 from dop/fix-35-jumping-workdir

Fix `inferior-haskell-cabal-of-buf` to handle subsequent calls.
Remove `dist` target hack

This removes quite a bit of Makefile hackery and finally resolves #156.
Add ELPA-compatible README

This is needed for `marmalade-repo.org` as it doesn't read the comment
section of `haskell-mode.el`.
Add texinfo manual skeleton

This is mostly to set up the infrastructure needed for distributing an
Info manual. This commit also adds a few references from docstrings to
Info nodes for testing.

When installing via MELPA/Marmalade, the info file location should be
automatically registered, however when working directly from git
checkout the following is needed:

    (add-to-list 'Info-default-directory-list "~/<some-folder...>/haskell-mode/")
Auto-generate README from haskell-mode.el like MELPA does

This is easier right now, as MELPA doesn't honor the README file as a
source for long package descriptions. This way we should have the same
description on both Marmalade and MELPA.

This also removes the outdated commentary from the `haskell-mode.el`
library header which was confusing anyway.
Refactor definition of `haskell-interactive-mode` by `define-derived-mode`

This simplifies the implementation of `haskell-interactive-mode`
and is the recommended way to define major modes according to the
Emacs Lisp Reference Manual:

    "We recommend using define-derived-mode even if the new mode is
    not an obvious derivative of another mode, as it automatically
    enforces many coding conventions for you."
Fix docstring for `haskell-menu-buffer-name`
Move inferior-haskell vars into new defgroup `inferior-haskell`

Next commit will do the same for the haskell-interactive-mode
variables. This makes it easier to keep apart the customization
variables for the two REPL modes.  This also adds an external info
manual link.