Separate plymouth switch-root from upgrade-switch-root.service

This makes the code a little cleaner and makes it work a lot more like
the upstream initrd-switch-root, so that's a good idea.

It also might fix #869061, since we're not doing the switch-root with
stdin/stdout/stderr -> /dev/null.
Remove dead code from systemd/Makefile

UTILDIR isn't generated by pkg-config anymore, so we don't need to check
to be sure we got a usable value.
Use system-upgrade-generator instead of 'systemd.unit=...'

Rather than relying on "systemd.unit=system-upgrade.target" to start the
upgrade, we should follow the precedent set by:

  http://freedesktop.org/wiki/Software/systemd/SystemUpdates/

and use a systemd generator to start the upgrade if the right conditions
are met.

In the case of system upgrades, our generator will switch the default
target to "system-upgrade.target" iff /system-upgrade/.start exists.

Once that happens, the first thing that the upgrade tool should do is
remove /system-upgrade/.start, to avoid boot loops.
fedup.sysprep: don't add special boot args (#912320, #964303)

If you install a kernel:

  a) after the 'fedup' boot entry is added, but
  b) before you get the upgrade started (which removes the boot entry),

you'll end up with the special fedup boot args (system.unit=..., etc) in
your new (default) boot item, and your system gets stuck in a reboot
loop or other weirdness.

Instead, let's leave the boot options as-is and let the fedup initrd and
systemd generators handle these things for us.
upgrade-prep.service: Use ExecStart for switchroot

This is more like how the initrd switchroot works, and should help with
some weird dependency / failure problems (e.g. bug #957783).
upgrade-prep.sh: don't trigger autofs mounts

upgrade-prep.sh loops through all the mounts in /proc/mounts and tries
to unmount anything that has a file named "/.please-unmount".

But: if we try to stat "/.please-unmount" on an autofs mount, it'll
cause the mount to get mounted, which is not what we want at all.

So: skip anything with fstype "autofs" in that loop.
fedup.sysprep: log RPM cleanup

Some people have been confused by fedup's handling of its cache; if you
re-run it, it will download newer versions of packages (if available)
and silently remove the now-obsoleted older version.

This adds a log message that notes how many RPMs were removed during
that process, which should at least give some indication that it does,
in fact, remove old packages from its cache.
Update TODO
systemd cleanups

Make sure upgrade-switch-root.target happens after sysinit.target.

(sysinit.target should pull in cryptsetup.target for any F16 and later
system, so we don't need to explicitly ask for it)
fedup.sysprep: fix missing 'args' variable

Oh yeah, we still need 'args' to be set, even if it's normally empty.
system-upgrade-generator fixes

- Use /run/initramfs/start-system-upgrade, since we usually can't write
  to /sysroot during initramfs
- Don't bother with umask 022 - systemd does that for us
- Handle systemd < v183 (one generator argument)
Make system-upgrade-generator work for systemd < 183

Older systemd generators couldn't override the system's existing units.
This means that system-upgrade-generator can't directly change the
default.target.

Instead, we add a service to default.target.wants that does 'systemctl
isolate system-upgrade.target' for us. Not pretty, but it works.