Cleanup: fix some whitespace errors in wlcppgen.py
Use multiple instances of Specification

Previously all protocol specifications were parsed and merged into a
single Specification instance, which destroys the relationship between
interfaces and protocols. With this patch, it is now possible to know
which protocol defines which interface during wrapper generation.
Added the ability to generate protocol copyright information

The new target 'copyright' in hook 'spec' will generate a comment block
containing the copyright text of the current specification.
Switch to a command-oriented argument parsing

The options 'help' and 'version' are now recognized as commands. A
default command 'generate' was added, which is used when no other
command is specified. See the update usage help and README.md for more
information.

This patch makes it easier to implement additional commands which have
different required arguments.
Added command '--list-interfaces'

Listing all interfaces defined by protocols can be useful when wlcppgen
is run in automated scripts.