Add an XML external entity loader.

This allows the use of "data:" and "compress.zlib:" in entities and URIs.

Fixes #2329.
Also I incref'd the File before storing it in the context -- not sure if it is the right solution since I still have memory management bugs, but if you don't incref it then if it could very easily be accidentally freed, if anything puts the File in a Resource or Variant.