Add new `haskell-str` module

This module is going to replace `haskell-string` in the long run; it
features a slightly shorter namespace function prefix `haskell-str-*`
and tries to better follow Elisp coding conventions.

Most notably, this module provide functions for converting to/from
Haskell string literals, which sets up some of the infrastructure
needed for addressing #164 and #178.
Remove unused `haskell-interactive-mode` variable

Using a variable of the same name as the mode is a convention for
minor modes but not for major modes.
Add `haskell-interactive-mode-input-partial` function

This functions retrieves the partial user input up to point. It's an
error to call this function when point is not at/after the prompt.

This also generalizes `haskell-interactive-at-prompt` to return the
position after the prompt if point is at prompt.
Hide internal buffer created by `haskell-interactive-mode-eval-as-mode`

This uses a whitespace prefixed buffer-name, which is omitted from
user listings. Moreover, a `haskell-` prefix is used to ensure
namespace separation.  After font-locking, the buffer content is
erased to help garbage collection.
Add support for `completion-at-point` to interactive-mode

This requires a `ghci` with the `:complete` command
(see http://ghc.haskell.org/trac/ghc/ticket/5687)

A GHCi based on GHC 7.6.x providing the `:complete` command can be
found at http://hackage.haskell.org/package/ghci-ng

This addresses #178