Fix `haskell-interactive-switch` to match `switch-to-haskell`

This switches to the REPL even if the REPL window is already visible
and should thus fix #155.
Remove `haskell-{hugs,ghci}` including most references

Those bitrotting modules have been deprecated for quite some time now,
and haskell-mode.el has been informing users since ce945dc (i.e. 5+
years) about their deprecation. This closes #170.
Update README w.r.t. supported Emacs versions
Extend regexps in interactive-mode to accept `-ferror-spans`

This just generalizes the regexps used for matching error lines in
`haskell-{process,interactive-mode}.el` to allow for an optional 2nd
column number (which then forms a span "startcol-endcol")

This is a step for addressing #151
Fix `haskell-interactive-switch` opening a 2nd redundant window

Due to `(haskell-session)` creating (and selecting) a new REPL window
if the session didn't exist prior to its invocation,
`haskell-interactive-switch` needs to check whether the current window
is already showing the REPL buffer before calling
`switch-to-buffer-other-window`.

This should fix #171 which is a regression introduced via fb0168b
(for addressing #155).
Simplify default for `haskell-process-path-ghci`

This just uses a static `"ghci"` as default value instead of the
previous auto-detection which would favor Hugs over GHCi for no good
reason.
Improve `egrep` hack in `haskell-session-project-modules`

With this, egrep error messages are silenced and the pattern are more
tolerant with respect to whitespaces in the `module`-line
Mark a few yasnippet related functions as autoloaded

This simplifies the definition of haskell snippets; e.g. now one can define the snippet simply as

    # key: imp
    # name: import
    # condition: (= 3 (current-column))
    # --
    import `(haskell-yas-complete "Module: " (haskell-session-all-modules))`

without having to declare to `require`s