Fix bug with certain kinds of indentation.
Merge pull request #204 from lensky/master

Fix bug with certain kinds of indentation
Initial commit of Shnippet form https://github.com/LukeHoersten/shnippet
Abstract `haskell-ident-at-point' a little

`haskell-ident-at-point' is now defined in terms of
`haskell-ident-pos-at-point', so that other functions can get the
region of the point rather than the point itself. This is useful
sometimes.
Change haskell-presentation-mode to be a derived mode

The old minor mode approach was bad as it would lose the keybindings
and normal behaviour of a haskell-mode buffer which are actually quite
useful, e.g., for using the same keybinding to drill down into the
info of yet more types.

This shouldn't break anyone's setup, in fact, it should improve it.
Improve ident name detection in `haskell-process-do-info'

For some reason I'd written ^[a-z][A-Z] which obviously doesn't work
on constructor names, and ends up wrapping them in parens, e.g. (Foo),
which GHCi does not like. So now it's ^[a-zA-Z_].
Improved some interactive-mode doc strings
Merge pull request #218 from ian-kelling/master

Improved some interactive-mode doc strings
Move fontification into haskell-mode main module

Also simplified by just using a temporary buffer instead of making a
buffer with a cached mode enabled.