Add refinement and better support for typed holes in Emacs mode

This pull request continues my work on ghc-mod for Google Summer of Code:
* Added a new refinement command which rewrites a hole or `undefined` via an expression, including any new holes that may be needed. For example, if a hole `_` is rewriten by `map`, the hole will change into `map _1 _2`,
* Added better support for typed holes in Emacs mode:
  * Typed holes are shown differently from errors and warnings: only the hole is underlined (in contrast with warnings and errors, where the whole line is underlined), and it is done with a different purple color and a different symbol (resembling `_`) in the left side,
  * New commands `C-c E n` and `C-c E p` which navigate only the typed holes, and show the information returned by their compiler for them,
* Also, switched on a GHC option to shown the most information available for typed holes, instead of just the 10 first possible bindings,
* Improved the initial signature creating to work on type families (support for type class instances and functions had been already merged).