Make `GhcMod` be `GhcModT (ErrorT IO)`

By adding `ErrorT` as the inner part of `GhcModT` I hope to improve ghc-mod's error management going forward by making errors more traceable instead of just discarding them, like we do with `fromJust` and `||>` in a number of places.