Reduce the size of the transactions

The transactions we were running were too big.  Any package that was not fully specified would always be listed in the `install` part, even if it was already installed.  This made very small operations, even no-ops to take even minutes.

This pull request removes any already installed packages from all the operations.  We get `spare_dependencies` to do return immediately in most cases, and Yum shells may often have nothing to do.