fedup.upgrade: factor out summarize_problems()

This might be useful in other places. Refactor it out into its own
function.
fedup.upgrade: Summarize dependency problems

Add DepProblemSummary, which summarizes problems with Requires (i.e.
broken deps and the like).

It also adds ProblemSummary._log_probs() so we can log the details of
the problem objects we get back from RPM.

Also: minor formatting changes and code cleanups!
fedup.upgrade: return non-fatal problems from setup_transaction()

If there are non-fatal transaction errors (e.g. broken deps) when
setting up the test upgrade, return (but don't raise!) a
TransactionError object so we can report/summarize the problems to the
user.
fedup: warn user about test transaction problems

This examines the problems/problem summaries returned by
setup_transaction() and warns the user about potential problems with the
RPM transaction.
fedup.download: provide info about potential transaction problems

This adds two methods to FedupDownloader: find_packages_without_updates
and describe_transaction_problems. You can probably guess what they do.
fedup: warn about potential transaction problems

This uses the info from fedup.download to warn the user about packages
that have no updates and any transaction problems that were found.
fedup.download: check package signatures (#877623)

This makes fedup verify the signatures of downloaded packages.
(Only if the corresponding .repo file has 'gpgcheck=1', of course).

The signature check works as usual: if the key used to sign the package
is already trusted, that key is used to verify the package.

If the package is signed by an *untrusted* key, the 'gpgkey=URL' item
in the corresponding .repo file will be examined; any yum variables in
the listed URL will be replaced as usual. ($releasever will be set to
the VERSION given with '--network'.)

If the resulting key file:

  a) has the correct key ID, *and*
  b) belongs to a package that was signed with a trusted key, *and*
  c) the file hasn't been modified since the package was installed,

we assume that the new key is equally trustworthy, and import it
automatically.
fedup.download: add check_signed_file()

This will allow us to verify a signed file (e.g. .treeinfo.signed),
which we can use to establish trust for the images whose checksums are
listed therein.
fedup.download: fix traceback in check_signed_file

return_keyids_from_pubring needs a gpgdir as an argument. Also, the
values it returns aren't the same as the RPM version strings, so massage
them into a form we can compare properly.

Oh, and add some log messages while we're at it.
fedup.download: change check_signed_file return value

Instead of just returning True/False (and throwing away the error
message), return a list of error messages so the caller can present them
to the user. An empty list indicates success.
Merge branch 'master' into checksig

Merge fixes and denaming from master branch. Conflicts were minor, and
all were caused by the denaming.

Conflicts:
	fedup.py
	fedup/upgrade.py