Functions, operators, and data types for XPath 2.0

Added the subtypes of xs:string (token, language, Name, NCName, ID, IDREF, ENTITY, NMTOKEN); but not the list types IDREF, ENTITIES, NMTOKENS. These have no useful functionality beyond the ability to validate the lexical rules for each type.

Implemented the distinct-nodes() function (at the same time fixing a bug in union, intersect and except when supplied with arguments that are not in document order).

Implemented the deep-equal() function. Because nodes are still untyped, it compares string values of text nodes rather than typed values. Not yet tested with an explicit collation.

Renamed the sublist() function as subsequence().

Implemented the sequence-node-equal() and sequence-deep-equal() functions. Not yet tested with an explicit collation.

Implemented the functions node-kind(), root(), context-item().