Add begin/end hooks to scan_action

This is so that we can have code to generate reports in a generic
manner (i.e. from the generic 'report' subcommand).  Some output formats
may want to print a header or footer and we shouldn't do that from the
caller code on a case-by-case basis.
Add the utils::text::escape_xml function

This allows escaping XML special characters so that we can output
verbatim text as part of an XML/HTML file.
Add a JUnit output format to the 'report' command

This is mostly so that we can transparently plug the results of the
execution of the FreeBSD test suite into Jenkins.
Merge branch 'report-junit'

This adds a new 'junit' format to the existing report command.

However, I am now not too happy about this for the same reasons I
originally created the separate 'report-html' command.  For example:
the --show-context and --results-filter flags to junit don't really
make any sense given that we should be including these unconditionally
in the output.  Why?  Because outputting the context has no
ill-effects and applying a filter (the default!) causes the junit
test counts to be broken.

Stay tuned... I may need to revert the generalization applied to the
'report' command earlier on.  Luckily, this has not been pushed out
in a release yet!