Better command line handling (WIP, DO NOT MERGE)

This PR is only to gather discussion and suggestions, **don't merge it yet**, although it has been manually tested. 

Please change your local copy to this branch to help testing modifications and provide suggestions, but documentation and automatic tests are still missing.

Now using [jds/clik](https://github.com/jds/clik) for command line handling.

Highlights:
* Each user command is exposed with a single decorator, `@cit`;
* Function arguments to commands are inspected and passed as required;
* Each command may have its own set of arguments;