Reporter: Ensure markup is valid XHTML

Build: Ensure markup is valid XHTML (entities and empty elements)

Fixes #645
Async: Tests are now Promise-aware

Fixes #632.
Ref #534.