Merge pull request #278 from DanielG/dev

Various changes
ghc-debug displays PATH env.
removing a warning of elisp.
We really don't want mtl < 2.0 (different API)
Add newGhcModEnv for allowing multiple active sessions

Conflicts:
	Language/Haskell/GhcMod/Monad.hs
Merge pull request #280 from DanielG/dev-monad2

We really don't want mtl < 2.0 (different API)
Migrate the remaining parts of the exposed API to `GhcMod a`
Merge pull request #281 from DanielG/dev-monad

Migrate the remaining parts of the exposed API to `GhcMod a`
Control.Monad.Trans.MonadIO -> CoreMonad.MonadIO

they are different before ghc 7.8
Merge pull request #283 from DanielG/dev-monad

Control.Monad.Trans.MonadIO -> CoreMonad.MonadIO
Make GhcMod a special case of GhcModT

i.e. turn GhcMod into a monad transformer
whitespace
Merge pull request #284 from DanielG/dev-monad

Turn `GhcMod` into a monad transformer
Add `Module` type
ver bumps up.

Major version is now 5 because of a lot of API changes.
Fix GHC 7.8.3: MatchGroup now has 4 args

Rather than use a pattern match, this patch opts to explicitly extract
the fields of interest using where syntax. This keeps compatibility
across GHC 7.8 releases.

Ref: https://github.com/ghc/ghc/commit/eeaea2df3fa585db503034f419c6e4331a4d8a84#diff-259092edcc59456f526cdef255c181d1L909
Merge pull request #286 from cabrera/fix_ghc_783

Fix GHC 7.8.3: MatchGroup now has 4 args
Remove `withGhc` and `withGhc'`, they're not used anymore.
Add functions for dealing with packages, modules and bindings to GHCApi
Move DynFlag related functions from GHCApi to another module