Add a class for handling pending installs of packages and dependencies.
Review Request #7734 — Created Oct. 25, 2015 and submitted — Latest diff uploaded
PendingInstall is used to queue up one or more packages for installation. It handles checking if the packages can be installed on the system, and handles fetching package bundles for dependencies for those packages (and for dependencies of dependencies). It also provides the caller with the order in which packages must be installed. By using PendingInstall, the caller can be sure they're getting everything they need to install the requested set of packages, and that they'll be installed in the order required.
Unit tests pass.