Repo and RepoDict.

Class skeletons with a test.
removal: pruning imports in dnf.yum.__init__
removing: trim down dnf.yum.packages.

This is 1.6k lines of legacy code down.
remove: _YumCostExclude, unused.
strip things out of dnf/yum/__init__.py
move yum.Base to yum.base.Base.

It is imported all the time otherwise and creates the dreaded import
cycles.
remove: base.add_enable_repo.

unused and unsystematic.
add dnf.util.empty().
librepo: use the new Repo and RepoDict.
tests: RepoDict allows simplifying MockYumBase.
dnf.repo.Repo: add dummy callback setters.
base.repos is now a dict itself.
Cli._configure_repos() uses get_multiple().
Finally: download repos through librepo.
librepo: make the text progress bar work again.

You know a patch is nasty if it introduced something called Adaptor.
delete YumTextMeter.

No longer used.
tests: make test_configure_repos() pass again.
repo: better error reporting in sync()
repo.gpgcheck does not mean repo.repo_gpgcheck.
fix bug in LibrepoCallbackAdaptor causing the progreess bar go nuts on 2nd repo.