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.