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>
Add uninterpreted indefinite field

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

Conflicts:
	Cabal/Distribution/PackageDescription.hs
	Cabal/Distribution/PackageDescription/Parse.hs
Seperate dependency solver's "package" from install plan "package."

Previously, the PlanPackage data type was used by both the modular constraint
solver as well as InstallPlan (the actual installation of packages.)  This
patch separates this into two separate data types, explicitly converting from
DepPackage to PlanPackage after the contraint solver is running.

DepPackage is currently just a subset of PlanPackage, but when implementing
Backpack, the instantiation of indefinite modules will result in PlanPackage
having *more* information than DepPackage about a package (and there may
be multiple PlanPackages per DepPackage.)

Knock-on effect: Distribution.Client.Freeze needs to operate on DepPackage,
which means that the way it interfaces with PackageIndex was adjusted slightly.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Remove unnecessary FixedDeps class for InstallPlan types.

This required us to refactor the change-reporting code, which is now
a little dodgy.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Swap ConfiguredPackage to use InstalledPackageId deps, CONFIGURED PACKAGE PROBLEMS is now DODGY

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Implement cabal-install instantiate-with calculation in InstallPlan.

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

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Don't attempt to glom up signature fake object files

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