Some modules don't parse well with libfbjs (joose, for instance) so instead of fixing the deep-rooted parsing problems in libfbjs I'm just adding this hack. Now you can unregister a file extension, require the troublesome 3rd party libraries, and then reregister the extension.
Adds an environment which supports directly manipulating existing DOM implementations. There's a new `DOMXMLEnvironment` constructor which only needs a `document` object and will enable full support for XML literals. You can use this on the client-side with the browser's DOM, or on the server-side using jsdom (or other DOM libraries).
This diff moves the construction of XML literals into XMLEnvironment which lets you create different environments for different purposes. For instance you could have one environment which operates on a client-side DOM, or you could have another environment which creates a simulated server-side DOM. The choice is up to the user. Since this project is focusing on XML literals only, it makes sense to decouple from the implementation of the DOM.