Add haskell-interactive-switch-back, so C-c C-z becomes a toggle

Closes #318, #319
Require etags, for find-tag-marker-ring (see #325)
Simplify haskell-hoogle using with-help-window
Only trigger when interactive-haskell-mode is enabled
Fix module completion ordering
Add support to generate tags on windows.
Fix build warning
Merge pull request #328 from scturtle/master

Add support to generate tags on windows.
Fix error message processing on Windows.
Merge pull request #329 from scturtle/master

Fix error message processing on Windows.
Add highlighting of pragmas.
Merge pull request #330 from Fanael/highlight-pragmas

Add highlighting of pragmas.
Convert face defvars into deffaces.
Merge pull request #332 from Fanael/defvar-to-defface

Convert face defvars into deffaces.
Remove indentation triming
Add scroll-to-bottom support
Use ident-at-point in haskell-describe
Fix haskell-process-load-file

Fixes a bug in which if buffer-file-name had a space in it, a "not a
module name or a source file" error would happen. This was caused by
":load" argument not being quotes.

This commit quotes the argument and replaces all "\"" with "\\"" - just
in case you are some crazy person who uses quotes in their file names.
Process ansi escape sequences in haskell-interactive-mode output

This closes https://github.com/haskell/haskell-mode/issues/337
Propertize haskell-interactive-mode with 'font-lock-face, not 'face

Font lock is assumed to be enabled in haskell-interactive-mode, since it
is used to colorize ":t" output etc.  As part of its operational cycle,
font-lock translates the 'font-lock-face property into 'face,
overwriting what might be there already. It is therefore generally
better to propertize text with 'font-lock-face than 'face, to avoid
clashes.

For example, the ansi-color code used in the previous commit uses
'font-lock-face, which is why the accompanying 'face property was
renamed. This commit extends the principle to this entire file.