Support for DOM and other external tree models

Note that the support modules for JDOM, XOM, and DOM4J are not packaged with Saxon-HE, but they can be built from source code if required.

Saxon's JDOM interface now supports use of the id() and idref() functions.

The DOM interface now supports the unparsed-entity-uri() and unparsed-entity-system-id() functions.

The DOM interface now filters out zero-length text nodes. (It also treats nodes whose nodeValue is null as if it were a zero-length string: this was a bug fix also applied to the 9.1 branch.)

The XOM interface (XOMObjectModel) and the JDOM interface (JDOMObjectModel) both now implement the new TreeModel interface, which means they can be set as the desired tree model for example in a s9api DocumentBuilder or XdmDestination. In fact, they can even be set as the selected tree model in a Controller, in which case the selected model will be used for temporary trees constructed within a query or transformation.