Change internal HTML data chain
Summary: Purely internal note to myself, for dependency tracking: change the way we pass HTML around in the system.
At the moment, commands like _edit, or fully-rendered QText, get wrapped up in a Play Html object once they are neutered and rendered. That makes sense in principle, but has turned out to be a problem in practice, because that Html object is really just a String from my POV -- if we want to do any further manipulation of it (for instance, with _class), we have to read that String back into XML. Not only is that inefficient, it just plain doesn't work if the HTML is multiple XML clauses (which isn't well-formed, technically).
It would probably be more appropriate for the HtmlWikitext class (which is the wrapper being handed around) to hold a scala.xml.Node instead. That's much more flexible, and would allow us to do arbitrary manipulation of the XML before it actually gets rendered to HTML. (It even potentially lets us provide introspection to the HTML, which seems possibly useful.)
The difficulty here is mainly that we have to rewrite the QText emitter, to produce XML instead of HTML Strings. This is mostly mechanical, but it's a big and fairly dangerous project.