We make CacheOnly= take an enum but keep backwards compat with the
boolean argument as well.
CacheOnly=metadata means we'll download packages but we won't sync
repository metadata. We also enable this in the kernel-install so that
our built initrds use exactly the same package versions as the host
system.
While we're at it we rename the internal variable to cacheonly instead
of cache_only (to match dnf's --cacheonly option). We keep the user
facing stuff the same to not break backwards compat.
We also make all of our enum functions take StrEnum as argument instead
of the generic enum.Enum.