Use HttpClient for all HTTP requests and abstract java.io.File operations

This change provides an abstraction layer to many of the java.net.URL and java.io.File operations. Most importantly it allows HttpClient to seamlessly authenticate to any HTTP host by using the XProcRuntime HttpClient for all HTTP operations. This also enables HTTP support for POST'ing results of p:xsl-formatter and p:store. It also allows p:store to store data to directories (with a generated filename, using the media-type to determine file extension).

When embedded this even allows interception of file system operations that can be used to selectively block access or provide a virtual file system over HTTP or WebDav.

The following steps are effected by this change:

p:http-request when a non-http/https: href URI is provided
p:data
p:document when a file: href URI is provided
p:xinclude when reading text
p:xsl-formatter
p:store
pxf:delete
pxf:directory-list
pxf:copy
pxf:head
pxf:mkdir
pxf:move
pxf:tail
pxf:touch
cx:css-formatter
cx:java-properties
pxp:unzip
pxp:zip