Switch InstallPlan over to using IPID-indexed PackageIndex.
While this doesn't let us get rid of Distribution.Client.PackageIndex, it does make InstallPlan more flexible, so we can have the same package name-package version in the install plan multiple times. We do this by synthesizing fake installed package IDs to act as placeholders prior to compilation. There is some shindig with 'FakeMap' in PackageIndex, check out the Note in that file for more details. This reverts commit a5a0f8e1959003ee702c04a23375a60d48f03f90, with a bugfix for linearizeInstallPlan. Fixes #2123
Showing with 223 additions and 57 deletions