Support module thinning and renaming Cabal-side.

NB: unlike GHC, Cabal will still try to find a globally consistent choice for
all package names, i.e. this does *not* implement private dependencies.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Preliminary support for compiling signature files, using --instantiate-with.

There's no chrome here, but some of the guts for Cabal supporting compiling
signatures.  The key UI is a new --instantiate-with flag for ./Setup (no support
cabal-install side!) which properly modifies the package key, calculates extra
hole dependencies for a package, and ensures an appropriately
translated -sig-of is passed to GHC.  The UI here is supremely user-unfriendly:
the intent is that users will use cabal-install to calculate these parameters
for them.

ToDo: Cabal's inconsistency check in ./Setup needs to be adjusted to be
less zealous.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Rename to instantiatedWith and store in InstalledPackageINfo

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Add uninterpreted required-signatures and exported-signatures fields.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Wire up so dep solver outputs different format, but trivial resolution

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Add uninterpreted indefinite field to Cabal

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>