Provides interface to abstract local file system access for most atomic steps

This change provides an abstraction layer to many of the basic file system operations. This 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 also 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