tests: cleanups in support.py
tests: reenable the repo cost testing again.

This takes some refactoring and hawkey needed to improve support for
loading real Yum MD into the testing sacks (see hawkey commit d9d7184).
Fix error handling in Base.downgrade and YumBaseCli.downgradePkgs.
Fix error handling in Base.update and YumBaseCli.updatePkgs.
Fix error handling in Base.remove and YumBaseCli.erasePkgs.
Fix error handling in Base.install and YumBaseCli.installPkgs.
cosmetic: trailing whitespace
packaging: require GTE versions of dependencies.

Requiring the exact version breaks DNF builds in Fedora quite often. After an
unexpected rebuild and version bump of a lib we depend on, projects depending on
DNF fail to build and we are receiving the blame.
tests: add a group that reflects our other testing packages.
groups: add support for 'dnf group info'

Includes verbose mode and UTs.
doc: 'group info'. (RhBug:1013773)
refactor: _handle_new_remote(), _handle_new_pkg_download()

Want a single code path in the Repo class where remote
librepo handles are being created.

Removes 3 functions but no semantic changes. Fixes a subtle bug
that _handle_new_pkg_download() used only baseurl[0].
enhancement: use proxy settings
enhancement: LRO_FASTESTMIRROR

We should enable FASTESTMIRROR earlier so not only packages but
also metadata use the sorted mirror list.  Also, turn it off when:

- we're reusing mirrorlist (mirror_setup=False)
- repo uses baseurls (keep the user supplied order)
add repo.handle property

This property returns and caches a properly set up librepo handle.
remove: repo.urlgrabber_opts()

Make urlopen() use repo.handle instead, so stuff as proxy
setting is honored properly in _retrievePublicKey().