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-`