Add dnf.goal.Goal deriving from hawkey.Goal.

DNF needs an extended version.
Override Goal.get_reason().

Adds a stateful mechanism for the group reason.
comps: store 'group' reason when installing a group-membering package.
comps: ensure only packages of 'group' reason get deleted on 'group erase'.

This completes the core implementation of full groups-as-objects semantics.
doc: document operation of 'group upgrade'.
doc: fix formatting in api_cli.rst.
New version: 0.5.0
build: 0.5.0-1
0.5.0 release notes: forgotten bug.
remove: stray itertools import from group.py.
abrt: disable abrt for 'dnf makecache timer' run from systemd.service. (RhBug:1081753)

We've seen situations where systemd is able to execute DNF when for instance
the standard Python library modules can not be loaded.
doc: make clear where one should expect bin/dnf
doc: build the documentation without any dependencies (on DNF or anything else).

gives us smoother integration at readthedocs.org.
doc: changes to rhbug.py to work on readthedocs.org.

this stubs out the bugzilla interaction. alternative is using virtualenv
on readthedocs.org but that's unnecessary.
remove: removal of dead code

This functions are not referenced from anywhere:

_save_rpmdb_key()
_save_yumdb_key()
popVSFlags()
download_done()
_askForGPGKeyImport()
_fdSetNonblock()