1063311 - admin should be able to delete task
add copr modification to web api

I've reviewed the issues raised in the code review:

1)
copr = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname).first()

Really shouldn't need try/except wrapping, looking at the source it just returns
None when the username doesn't exist, which is handled correctly, and empirical
testing confirms that.

2)
if form.description.raw_data and len(form.description.raw_data):
   copr.description = form.description.data
etc.

Really does handle the optional field as it should, meaning you can delete e.g.
description by passing an empty string in POST, and on the other hand when you don't
pass the field at all, it will not be changed.

3)
I've changed the chroot modification URL to /coprs/<username>/<coprname>/detail/<chrootname>/
as requested.

4)
Added the API documentation.
add initial version of dnf plugin
fix compilation problems
add get_summary and get_usage

addressing:
W: 22, 0: Method 'get_summary' is abstract in class 'Command' but is not overridden (abstract-method)
W: 22, 0: Method 'get_usage' is abstract in class 'Command' but is not overridden (abstract-method)
let the plugin actually load by dnf
log success
fix typo and rephrase text
we still do not have proper cert
when deleting/canceling task, go to same page
dnf-plugin: answer is no by default

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
dnf-plugin: enable logging

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
dnf-plugin: use _copr_user-copr for .repo

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
dnf-plugin: implement disable function

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
dnf-plugin: make third argument optional

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
dnf-plugin: implement list function

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
dnf-plugin: use cli.logger instead

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Merge branch 'dnf'
Chroot details API now uses GET instead of POST