api: add a special ArgumentParser to parsing plugin cmd arguments and options

This makes it possible to add private command line option to a plugin there is
adding new command to dnf and also make it possible to define what arguments
is required and show the user if the wrong options/arguments is given.
download: update the download plugin with --source, --destdir & --resolve
options

--source will download the source rpms.
--destdir set where the downloaded files are placed.
--resolve download uninstalled dependencies also.

RhBug: 1048433, 1045679, 1074194
build: install the download plugin