systemd: make upgrade-switch-root more like initrd-switch-root

This makes the behavior of upgrade-switch-root.{service,target} almost
exactly match initrd-switch-root.

It adds upgrade-plymouth-switch-root.service, which is basically just a
copy of plymouth-switch-root.service, but for upgrades. It'd be nice if
we could somehow use that same service in both places...
Do async downloads, like yum does

Most of the changes here are just minor rejiggering to get the proper
text output like yum-cli.