fail quicker when instrepo isn't available

Move the (very long) package download after the kernel/initrd download
so we can fail much sooner if instrepo is unreachable.
drop half-assed '--network latest'

If you're running an upgrade on the CLI you should know what version
you're trying to upgrade to.
clean up mirrorlist/default instrepo handling

Constructing the mirrorlist URL is a bit cleaner this way, and it means
we don't have to maintain a static list of URLs for everything we might
want to construct a mirrorlist for.
Log / print actual reasons for download failures

URLGrabError is pretty unhelpful about what the download failure
actually was, so we need an extra class to store the last failed URL and
exception, so we can print that info when the exception happens.

This also fixes a NameError traceback when there's a failure downloading
.treeinfo (turns out that 'key' variable was necessary after all!).
bump version to 0.7.2

Now might be a good place to do a test build.
remove grubby, let new-kernel-pkg set default

The whole reason for switching to new-kernel-pkg was that grubby fails
when it doesn't find the right config. So why did I think using grubby
to get/set the default kernel would work?

Let new-kernel-pkg set the defaults. Anything that goes wrong here is
new-kernel-pkg's fault.

Also, fix the --make-default flag and make it the default.
Fix repo setup so everything uses correct cachedir

Calling add_enable_repo causes the initial repo setup to happen. Once
that happens, any subsequently-added repos will *not* use the stuff from
prerepoconf. (No, I don't know why. Yum's just like that.)

So: set up our own add_repo function that doesn't cause initial repo
setup to happen, so we can add all our repos *before* setting up the
repo storage and resetting all the callbacks / cachedirs / etc.
Clean up log messages from CLI

- only dump full traceback if loglevel is DEBUG, and
- write short exception message to console and log
Write kernel info after downloading kernel images

This way we can remove the kernel even if we haven't modified the
bootloader yet.
update spec
Remove redundant dscallback.procReq()

Yum calls procReq() only if procReqPo() isn't available, so it's useless
to provide both.
provide a callback for conflicts (#880679)

If we don't provide a conflict callback, there'll be a big messy
traceback when yum actually tries to process a (real) conflict.

Provide the callback so we can at least have a useful log message when
that happens.
Don't fail if libselinux-python is missing (#885990)

libselinux-python is not in the minimal package set, so trying to import
is_selinux_enabled from the selinux module causes a traceback.

The `selinuxenforcing` command is available, though, so rather than
adding requirements to the fedup package we can just rewrite
is_selinux_enabled.
RepoAction cleanups

Add a docstring, use 'opt' instead of unwieldy 'option_string', accept
shortened --repo for --repourl.
fedup-cli: improve help output for --network options

This just clarifies some things about the network options:

* 'options' instead of 'arguments' (these are all optional!)
* for args using repo ids, say REPOID instead of REPO
* mention that instrepo has a default (so people know it's not needed)
make add_repo set up repos fully

We can't always add all our repos before repo setup happens, so make
add_repo fix everything that gets left out if we set up a repo
after yum does repo setup.
fix --enablerepo/--disablerepo

We can't enable/disable repos until *after* yum sets them up. So make
sure repo set up happens before that.
Move --repourl to --addrepo and add mirrorlist support

You can now do:
  --addrepo 'myrepo=@http://somewhere.tld/mirrorserver?repo=hot-dog'
to add a mirrorlist URL. This should also work for '--instrepo @URL'.

--repourl is still accepted as a synonym for --addrepo, because I keep
forgetting and doing '--repo REPOID=URL'.
workaround wrong/missing plymouth theme (#879295)

Until the fix gets built into a new plymouth package and we rebuild the
upgrade images, we need to explicitly tell plymouth to use our theme.
update TODO and README