groups: allow erasing depending packages on remove (RhBug:1135861)
py3: fix traceback in fmtColumns() on a non-subscriptable 'columns'.
refactor: split out and clean up the erase command.
goal: renamed undefined name variable
groups: marks reason 'group' for packages that have no record yet (RhBug:1136584)

6584)
locking: store lockfiles with the resource they are locking. (RhBug:1124316)

Otherwise it is not possible to e.g. run DNF twice for different build roots.

This required taking the responsibility of chosing where to put the lock file
away from the lock module (else it would need to learn about the conf
object...).

User still can not lock read access to root-writable MD cache or similar. The
commit merely keeps the old semantics: if it is locked by the same user, do
not let other process lock it again.
py3: add queue.Queue to pycomp.

Another 2/3 namechange.
bash-completion: new completion from scratch (RhBug:1070902)

Features:
  `--enablerepo`:
    completes by disabled repos (`dnf repolist disabled`)
  `--disablerepo`:
    completes by enabled repos (`dnf repolist enabled`)
  `install|update`:
    completes by available pkgs and if local path used (e.g. `./`),
    completes from local files which ends with `.rpm`
  `help`:
    complete only one command. I.e. `help help<TAB><TAB>` will complete
    nothing
  All options/args generates automatically

Used Elad Alfassa <elad@fedoraproject.org> code for completing
`install`, `remove|erase`, `update`, `info` commands.

Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1070902
drop unused parameter of Base.verify_transaction().
rename: Base's runTransaction -> _run_transaction().

This one ugly method should at least be private and properly named.
remove: YumRPMTransError.

We never explicitly catch it and so for our purposes generic error raised by
Base._run_transaction() suffices.
fix: dnf.cli.util.* leaks file handles.

Plus a bunch of de-linting and cosmetics.
refactor: repo: separate concepts of 'expiry' and 'sync strategy'.

Related: RhBug:909856
doesn't upgrade packages by installing local packages (Related:RhBug:1138700)
does not install new pkgs when updating from local pkgs (RhBug:1134893)
Allow some commands to use stale metadata. (RhBug:909856)

Commands affected: autoerase, history, info, list, provides, repolist, search.
bash-completion: complete 'clean|groups|repolist' using help

Reported-by: Parag Nemade <pnemade@redhat.com>
Reference: https://github.com/rpm-software-management/dnf/pull/159#issuecomment-55066318
bash-completion: more faster completing install/remove

That's idea from Alberto Ruiz <aruizrui@redhat.com>
Make --refresh play nice with lazy commands.

rename demands.refresh_metadata to demands.freshest_metadata to better go with
demands.fresh_metadata.
Update user_faq.rst

'install' is wrong here as the action intended to run is 'upgrade', preceded by the 'enablerepo' option.