We now produce .html, not .xhtml.

This fixes the issue where ninja insisted on rebuilding the API docs every time it was run.
Choose the correct invocation for platform's cpp.

GCC's cpp expects to be invoked with "cpp in out"; clang's cpp expects to be invoked with "cpp in -o out". Handle this difference in our test suite.