Change to super(ClassName, self) syntax for parent invocation

The super(ClassName, self) syntax for invoking methods in
parent classes is required to support multiple inheritance
correctly.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Change to use multiple inheritance

Instead of forcing the hiearchy

 CommandCaching -> CommandReport -> CommandProject

switch to use multiple inheritance. ie subclasses will
decide exactly which of these 3 parent classes they wish
to use. This allows reuse of the CommandProject class
for things which are not reports or which dont want to
be cached.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add format_color helper API for ANSI terminal colouring

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add option to OperationQuery for return of comments

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Make Change/Patch models parse comment information.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add 'comments' command for displaying comments on a change

The 'comments' command will display all comments on a change,
grouping comments on the change to be against the patch they
are associated with. It will strip out 'Foo uploaded patch N'
comments, and strip out any by automated bots.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add '--all' option to "comments" command

Add a '--all' option which tells the comments command not
to strip comments from bots.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Add '--current' and '--patch' flags to "comment" command

Allow the set of patch numbers displayed to be changed
via '--current' (only most recent patch) or '--patch N'
(the Nth patch number)

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Filter 'todo-anyones' report to exclude own comments

The 'todo-anyones' report should report changes where any
non-bot has commented, but not things you have commented
on the current version.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>