Hack can build on OSX now

Summary: Closes #3051

Reviewed By: @ptarjan

Differential Revision: D1408166

Pulled By: @JoelMarcey
Split off libxml extension and convert to HNI

Summary: The libxml extension was in ext_simplexml.cpp. I don't think we need
multiple extensions per file. Also converted to HNI. Constant
registration was adapted from PHP 5.6.0-dev, using the libxml error
files as a source instead of hard-coding everything as is required by
constants.idl.json.

Moving LibXMLError from IDL to a systemlib fixes the serialization
failure which, despite being included in an expectf file, does not occur
in PHP. Updated the expectf file to match the PHP output.

* Made a header file for libxml_use_internal_error() and
  libxml_add_error() instead of repeating the definitions.
* Cache a Class pointer in a static variable, following
  the example of ReflectionException.
* Rename LibXmlErrors to LibXmlRequestData, since it contains more than
  just errors.

Submitted on behalf of a third-party: The PHP Group
Source: PHP 5.6.0-dev
License: version 3.01 of the PHP license
Closes #3012

Reviewed By: @fredemmott

Differential Revision: D1397523

Pulled By: @JoelMarcey