Better command line handling

Now using [jds/clik](https://github.com/jds/clik) for command line handling.

Highlights:
* Each user command is exposed with a single decorator, `@app`;
* Function arguments to commands are inspected and passed as required;
* Each command may have its own set of arguments;

This PR fixes issue #5.