Support reading/writing from/to stdin and stdout

The options --src and --dst can now be omitted or "-" in which case
stdin respectively stdout will be used.
refactor: Use extra function for interface filtering
Added command --list-classes

Similar to --list-interfaces, this command will print all final class
names.
Added hook "include" and option "--include"

The new hook "include", which has currently only one target named
"self", can be used in cpp templates to include the correct header. If
one file per interface is generated, this eliminates the need for
additional patching.
Added hook target "spec.hpp.required_prototypes"

The new target generates class prototypes that are actually used.
Added option "--extra-includes"
Added single interface mode and hook target "include.required_headers"

See updated usage help for more information.
sample: Generate one pair of files per interface