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.
- cradle now stores a list of active package databases instead of only
the user store (if present).
- rename `cradlePackageDb` -> `cradlePkgDbStack` as that`s what the ghc
documentaion calls this kind of thing
- `getPackageDbPackages` now returns names of all visible packages in
the given directory. Also the implementation now uses `ghc-pkg`
instead of manually looking at the package database