Better automated Doxygen documentation checker

Add a completely rewritten checker to replace 'make doccheck'.
This is based on first generating and then parsing the Doxygen XML
output.  It is somewhat slower than the old approach, but more robust
(exact format of the comments no longer matters) and allows relatively
easily checking all the documentation.  As a side effect, the XML
extraction also makes Doxygen parse those comments that appear in
undocumented files, so that at least syntax errors in them can be
spotted from warnings (the checker can also check them otherwise, and
even warn about them getting ignored).

The new check can be run with 'make doc-check'.  Not all functionality
from the old checker is available; documentation of the new checks in
doxygen.md follows when that is done, as well as some additional cleanup
of the code.

Currently, the new checker produces some warnings, which are suppressed
using suppressions.txt.

Short-term, this could be used to check for most common issues like
missing brief descriptions.

Medium-term, we could implement our own logic for enforcing what needs
to be documented, and disable all Doxygen-provided warnings about
undocumented members (by turning HIDE_UNDOC_MEMBERS=ON).  This would
remove the need for most \cond directives.

Long-term, we could even consider generating some extra member listings
or such from the XML output, and/or use it to patch the HTML pages
generated by Doxygen such that they would be more useful for our uses.

Change-Id: I25262b28699e10547e2116a50d3a9d8d5aa966a6