fixed py3 error when called next method
spec file now generates dnf and dnf-python3 packages
refactor: do not rely on CliCache (dnf.conf.Cache previously) outside of Cli.

conf.cachedir should be sufficient for all our current purposes. Let Cli wrap
around that as it needs.

doc: api: document Config.cachedir
setup deprecation warnings.

call dnf.logging.depr() to flag a deprecated code path.

the implementation tries to obey the following:

- dnf users never see the warnings (achieved explicitly by never using
  deprecated code in DNF CLI)
- warnings are logged to dnf.log (achieved by using logging.captureWarnings)
- API clients see the warnings in stderr depending whether the WARNING logging
  level is enabled for stderr and always in the logfile (achieved by sharing the
  same handles with the 'dnf' logger)
- DNF does not disturb whatever the API clients/Python defaults have set for
  warning categories (achieved by supplying and setting up our own deprecation
  warning class)
refactor: initializing a Repo.

Since a repo always needs a cachedir, make it an argument of the constructor.

api: doc: Repo.__init__().
remove: repo._handle_new_pkg_download()

There was just one user left: repo.get_package(). DNF does not use it,
but we keep it for API compatibility. Refactored it to use the shared
destdir-free handle instead.
put user locks in /run/user/$USER/dnf.

This seems to be used instead of $UID, at least on my system.
dconf, gvfs, X11, possibly others put lock files there.