Allow specifying a custom package database with --package-db

**This isn't completely finished**

This adds a `--package-db` flag so you can run cab from anywhere and also lets you use it with cabal-dev.
You can run e.g. `cab outdated --package-db=-package-db=/foo/bar/cabal-dev/packages-7.8.2.conf`.

Are you okay with adding this feature?

I didn't quite understand what to do about the switches, i tried blindly adding it as seemed appropriate (not in this commit) but didn't get it working, I'd appreciate some help here! I temporarily commented out the `checkOptions2` to test the rest.