Add support for versioning and parsing options

Large commit adds the ability for commands to easily parse their
options.

Also supports specifying and checking whether commands and options
are supported for a specific Gerrit version.

This commit includes:
- New internal module (cmdoptions) for parsing command options
  and checking versions
- Documentation of the new module
- Modifying the ProjectsList command to use the new capability
- Unit tests for the new module
- Updated unit tests for the ProjectsList command
- Updates to gsshcli.py for the changes to ProjectsList
Update test packages to latest versions

Note that pep8-naming must be installed from my own fork until
pull-request https://github.com/flintwork/pep8-naming/pull/11
is merged to the master branch.

That may be a while as there has been no activity for a year.