Experimental refactor of jumping to definition

@hvr In my initial tests this is much more accurate than tags. I don't
know why I never implemented it before.

Downside is that if your code doesn't compile, you don't get the
info.

Existing behaviour for haskell-mode-jump-to-tag is preserved, but now
there are two more options for candidates of M-:

* haskell-mode-jump-to-def -- uses GHCi only.
* haskell-mode-jump-to-def-or-tag -- uses GHCi or falls back to TAGS
  file.

I'll document this on the wiki.