Improvements
- The `CommandController` is now composed of four mixin classes that
can be combined and tweaked to create custom controllers.
- `CommandController` takes optional parameters: program name, program
version, program summary and program URL. When provided, they are
used in output generated by the `version` and `help` commands.
- The `version` command takes an optional `--short` command-line
option that, when provided, causes it to output just the version
number.
- The `version` command includes information about Python, `bzrlib`
and `commandant` modules in its output, in addition to information
about the program being run.
- A new `DocstringHelpTopic` can be subclassed to create topics that
load summary and help content from the subclass's docstring.
- New `BzrlibHooksResource` test resource resets internal data
structures in `bzrlib` that may have been modified by tests.
- `bzrlib`'s internal UI machinery is initialized before `bzrlib`
hooks are installed.
Bug fixes
- If the first option, expected to be the command path, starts with a
`-` a usage message is shown, instead of an error about a missing
path.