Start cleaning up ghc-mod's Emacs frontend

- `ghc-mod-mode` is now a minor mode providing ghc-mod's functionality

- Backwards compatibility is provided by calling `(ghc-mod-mode)` from
  `ghc-init` and (eventually) warning users that used the `ghc-*-key`
  variables to change keybindings since now a minor-mode specific keymap
  is used.

- I also intend to rename most non-user facing functions and varaibles
  to use the `ghc-mod-` prefix rather than `ghc-`

This is a development preview, don't merge.

Still to do:

- Undo effects of `ghc-mod-check`. @kazu-yamamoto some pointers with this one would be appreciated
- Present warning messages when `ghc-*-key` were changed from defaults.
- Fix installation instruction in ghc.el
- Document migration for users