Make Saxon::XML::Document a proper wrapper

Saxon::XML::Document was a class that generated
net.sf.saxon.s9api.XdmNode documents instead. Now it's a full wrapper
class that contains that document and can be passed around.

It's used as the return value for XSLT transformations with
Saxon::XSLT::Stylesheet and can also be used as the input for a new
Stylesheet so you can write XSLTs that write XSLTs.

Likewise Saxon::Processor becomes a fuller wrapper: it can expose the
underlying java net.sf.saxon.s9api.Processor instance.

Because XSLTs and Documents to be used together must be created by the
same Processor Saxon::XML::Documents can return a safe-to-use
Saxon::Processor object, and Saxon::Processors can be instantiated from
an s9api.Processor instance (i.e. given a naked s9api.XdmNode)