Add tests for $.ajax() and $.jsonP()

This uses a test-only HTTP server (written with Express), started during the test run, to send tailored responses for each test case.

Initially, I tried to use sinon's server and xmlhttprequest, but couldn't get these to work satisfactorily from node (the original use case was for mocking a server in the browser).

Next, I wrote a mock implementation of parts of node's http module, then attached that to a modified version of node-xmlhttprequest. However, this wasn't viable for testing $.jsonP(), where the server has to react to the content of the query in forming its response (e.g. where "?callback=json_callback22" is in the querystring, we need to return a jsonp script like "json_callback22({a: 1, b: 2});").

I had to retain a modified node-xmlhttprequest, for these reasons:

1. jsdom's XMLHttpRequest doesn't support POST requests, so I needed node-xmlhttprequest.
2. The original node-xmlhttprequest doesn't support responseXML, so I had to add that myself (basically I just copy responseText to responseXML).
3. The original node-xmlhttprequest threw an error with node 0.10.17 (not earlier versions), as the protocol wasn't available from the parsed request URI. It's not actually required for our purposes, so I removed the offending code.

If possible, I would like to patch node-xmlhttprequest so we don't have to maintain a modified version of it, but I need to investigate the best way to do that, and it might not be popular with the maintainer. So I've kept my fork of it for now.

Coverage of the $.ajax() and $.jsonP() isn't 100% in these tests, but I wanted to get some feedback on the approach before I went any further. (NB these tests all pass.)