Use GhcModT everywhere and remove the GhcMod alias

Not doing this makes having GhcModT pretty pointless as users of the
library wouldn't be able to use custom inner monads as evey function for
dealing with GhcModT's would be constraint to (GhcModT IO) thus only
allowing IO as the inner monad.
Fix doctest
Bring back `GhcMod` but this time it's a GhcModT with an ErrorT inside
Fix cabal file
Fix building with ghc < 7.8
Merge pull request #288 from DanielG/dev-pkgs

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