setup.py: Print error message and usage when no or multiple commands are given on the command line.
setup.py: Added function to print fatal errors.
setup.py: Removed command variants of --help and --version.

The code path to handle these was confusing, as was their usage as the usage referred only to the commands while some error messages only referred to the options.
setup.py: checkFreedom() should not need to check whether commands have been given on the command line.
setup.py: Do not print the configuration when an unknown command was given so that the printed usage is better noticed.