Add an XML external entity loader.

This allows the use of "data:" and "compress.zlib:" in entities and URIs.

Fixes #2329.
I think after #3012 this call should be in LibXMLExtension::moduleInit().