Use a single JSContext per JSRuntime.

The long-term plan for SpiderMonkey is to eliminate JSContexts by merging
(most of) it into JSRuntime, so to future-proof our code, we should avoid
creating multiple JSContexts for the same JSRuntime.

However, this implies we'll have to use the same JSContext for objects in
different compartments, so we need to enter compartments. This is done by
using the with_compartment function.
Enter a compartment when calling timeout handlers.
Enter a compartment when calling callbacks.
Don't clobber the default wrapping callback.
Add support for DOMString in unions (fixes #2324).
auto merge of #2331 : Ms2ger/servo/global-cx-3, r=jdm

The long-term plan for SpiderMonkey is to eliminate JSContexts by merging
(most of) it into JSRuntime, so to future-proof our code, we should avoid
creating multiple JSContexts for the same JSRuntime.

However, this implies we'll have to use the same JSContext for objects in
different compartments, so we need to enter compartments. This is done by
using the with_compartment function.
auto merge of #2343 : Ms2ger/servo/String-union, r=jdm
Split parse_url to allow for external error handling
Force a GC when shutting down each layout task. Fixes #2342.
auto merge of #2341 : Manishearth/servo/error-parse, r=jdm

Sometimes it's useful to bubble out the error from the URL parsing so the caller can deal with the result as per its needs.

[The XHR `open()`](http://xhr.spec.whatwg.org/#the-open()-method), for example, is one place where the bubbling out of an error is required.

Blocks #2282
auto merge of #2344 : jdm/servo/iframefail, r=Ms2ger
Use Vec in workqueue.rs.
Use Vec in transform_text tests.
Use Vec for the metadata argument to initialize_layers_for_pipeline.
Return Vec from get_last_resort_font_families.
Use Vec for ResourceTask.
Use Vec in concurrentmap.rs.
auto merge of #2347 : Ms2ger/servo/vec, r=jdm
Print the location of the image diff when a ref test fails.
auto merge of #2349 : zwarich/servo/reftest-print-diff, r=larsbergstrom

Having to match the numbered results in /tmp with the failing tests was bothering me, and I figured it would be better to print the path with the failure.