Refactor the way pacakge databases are handled

- 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

- rename `packageDb' -> `sandboxDb' where appropriate (the functions are now
  in GhcPkg)

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