Restore report's --output=format:path flag

This is the first step in allowing the report command to output more
than one format.  We will be reusing this command to generate other
single-file output types.  The 'report-html' command was always a
hack I feel.
Move file_writer to the common module

We will be moving the console report generation code out of the
cmd_report module and, to do so, we have to first generalize the
file_writer class.
Move the console report format to its own module

Split out all code from cmd_report that deals with the generation of
the console-based output into its own module.  This is to allow us
adding other backends.

(This is a bit ugly indeed, but all the reporting generation code is
as well indeed.  We should be rewriting the whole thing in a more
extensible manner, possibly by (ab)using Lua.)
Merge branch 'generalize-report-command'

This merge changes the syntax of the --output command in the report
command to accept both the format of the output as well as the path.

The goal of this is to allow adding other output formats to the
report command without having to define a different command for every
format (which does not scale and is just plain ugly).