Expose packages in sandbox with their ids

This commit
1. rename Package with PackageBaseName
2. Pacakge = (PackageBaseName, Maybe String) to save its id
3. Scan a package db directory to collect package id
4. Expose packages with id if available

If you installed a package both in a sandbox and globally, global
package may be selected even if there's a package in a sandbox, which is
different behavior from cabal sandbox.

e.g. when you have fast-logger-2.0 globally and fast-logger-0.3.3 in a
sandbox:

(Without patch)
$ ghc-mod check Foundation.hs
Foundation.hs:12:31:Module `System.Log.FastLogger' does not export `Logger'

(With patch)
$ ghc-mod check Foundation.hs