remove: dead code for deplist, version and check-rpmdb commands.

Even if there is an RFE for them in the future, the code would have to change
a lot by now.
Add dnf.cli.demand.DemandSheet.

This is the core of what I previously called 'signup mechanism'.

Note that the tests are starting to be structured into subdirectories with
this commit.
Command.configure() takes the command arguments like run().

This is to give commands a chance to properly register their demands depending
on the command line.

Related: RhBug:1080331
Integrate DemandSheet into CLI.

Built-in commands can keep on using their class attributes as a
convenience for now or define configure(). Only the cli.demand approach is
an API though. It is more flexible, allowing commands to demand features
dynamically based on command line argumens. Also, DemandSheet does
checking that once demanded feature is not disabled again.
api: add Cli.demands and Command.config() to the API (RhBug:1062884)

Document properly. This opens up the road to several API extensions we've been
asked for.