Better arg handling
We have several options and an argument that each accept multiple values
(nargs='*') and values might end up being shallowed, consider for
quibble --run phpunit mediawiki/extensions/BoilerPlate
In this case, the repository is not cloned since Quibble considers it to
be a stage to run. The workaround is to use a double dash '--' to stop
quibble --run phpunit -- mediawiki/extensions/BoilerPlate
But it is very easy to entirely miss that.
Instead, we should only have one argument accepting multiple parameters:
the list of projects to clone. As such:
--run, --skip are used to specify known stages + the magic 'all'.
Convert them to 'choices' which has the added benefit of validating the
--commands is intended to be used as:
--commands 'echo hello' 'exec phpunit --debug'
But would shallow the list of projects to clone. Make it possible to
specify it multiple time and have append to a list. Add a singular alias
'--command' which better reflect the new semantic and a shortoption '-c'
--commands keep its original behavior and will be dropped eventually. It
is marked as deprecated in the usage help.
Make --commands and -c mutually exclusive.