Fix downgrade inaction if package version provided.
move format_number, format_time to dnf.cli.format

We should not put low-level functions in the same module
(same class in this case) as the high-level setup code,
as adding mid-layer code to a different module causes
circular dependencies.
unit tests: dnf.cli.format
drop per-repo interrupt callback

This is ignored in repo.set_interrupt_callback() and with multi-downloader
there's no "active" repo anyway. Callbacks (and progress meters, too)
must be global.
add dnf.cli.progress

MultiFileProgressMeter: this meter is used to display progress
of multiple downloads running in parallel.

LibrepoCallbackAdaptor: drop-in replacement of the old callback
adaptor for single-file downloads. The win here is we don't have
to import urlgrabber.progress anymore.
unit tests: dnf.cli.progress
make repo._local_origin public, as repo.local
use librepo.download_packages()

Moved most of the functionality to dnf.repo, download_packages()
is just few lines.  Dropped verifyPkg() call as librepo handles
checksumming of existing files already.
created new private method _get_installed from code in assertResult
added assignment of cost option to hawkey repo object
remove: set_failure_callback()
remove: urlgrabber.grabber.default_grabber.opts.user_agent
remove: base.verifyPkg(), base.verifyChecksum()

Both have no callers. It's better to use the
package method anyway: `po.verifyLocalPkg()`.