refactor: move install, downgrade and upgrade commands into separate modules.
tests: fix tests broken under foreign locale after 32818b2.
api: add Base.package_install et al. and Base.add_remote_rpm(). (RhBug:1079519)

Make the CLI use these building blocks.

Document the new API calls.
repo: Repo.cachedir is not a list.

And librepo does not like inflicting a non-list on Handle.urls. In fact,
Python displays deprecation warnings with -Wall.
fix PendingDepreaction warning from rpm in _getsysver().
fix: leak: couple of files objects left open.

Found with -Wall.
fix: resource leak in yum.misc.checksum() under py3.
doc: fix Package references that are ambiguous now.

Related: b68a697.
fixed local downgrade error
fixed wrong named variable
fixed py3 error thrown by search command
rename: yumbase (case insensitive) -> base.

There's been no YumBase class since b8f76da (Jan 2013).
refactor: move ReinstallCommand in its own module.
tests: move Term tests to better file.
Fix Term.MODE setting under Python 3 in case of incapable tty stdout.
fixed local reinstall error
removed _enc method that did nothing without specspo
sync with transifex
remove: dead code for deplist, version and check-rpmdb commands.

Even if there is an RFE for them in the future, the code would have to change
a lot by now.
Add dnf.cli.demand.DemandSheet.

This is the core of what I previously called 'signup mechanism'.

Note that the tests are starting to be structured into subdirectories with
this commit.