Make filename positional argument not mandatory

This is ongoing work so that a -l/--list-commands argument can be
used without the need to specify a file.
Rework help and error message from -c argument

This is ongoing work to allow a -l/--list-commands argument.
Add -l command line argument

This argument lists all possible commands with their description
to ease the usage of it.
Merge branch 'list-argument'