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.
Command.configure() takes the command arguments like run().

This is to give commands a chance to properly register their demands depending
on the command line.

Related: RhBug:1080331
Integrate DemandSheet into CLI.

Built-in commands can keep on using their class attributes as a
convenience for now or define configure(). Only the cli.demand approach is
an API though. It is more flexible, allowing commands to demand features
dynamically based on command line argumens. Also, DemandSheet does
checking that once demanded feature is not disabled again.
api: add Cli.demands and Command.config() to the API (RhBug:1062884)

Document properly. This opens up the road to several API extensions we've been
asked for.