This commit makes DOMOutputter behave more like the other Outputters, being able to output more than just Document and Element content (but all sorts now), and able to modify the DOM results to applye whatever formatting is needed. The default formatter is (like other Outputters) the Raw type, so the default behaviour is not changed.
This commit also extends the DOMBuilder to be able to build JDOM Content from more than just the DOM Element and DOM Document source. Thus the DOMBuilder and DOMOutputter are 'symmetrical'.
Additionally, the 'common' code between various outputters have been centralized in to the new Abstract class AbstractOutputProcessor
Finally, add a whole bunch of tests.
Completes the code for SAXOutputter and Format, thus completing the issue.
Implements tests, but some tests are ignored because of two issues:
1. Cannot affect format of content outside of root element using Format
2. Cannot process DOCTYPE declarations properly.