Modify borders ref test to work on OS X

Issue https://github.com/mozilla/servo/issues/2848 has details.
This commit uncomments the borders ref test in basic.list
and modifies the test to work with viewports up to 4096px wide.

Also as a workaround change the html element background to white,
otherwise pixel (0,0) is black (it should be white since the border
at pixel (0, 0) is white. The bug is mostly likely a regression
in rust-layers.
Check for worker scope in responseText setter
Restructure compositor layers to work with iframes

When a frame is selected via set_ids, a tree of root compositor
layers is also created, matching the tree of pipelines in the frame.
This decouples the chronological ordering dependency for parent frames
and child iframes sending CreateOrUpdateRootLayer &
CreateOrUpdateDescendentLayer messages.

Change the Compositor ready and render states to per pipeline.
This ensures the compositor doesn't composite for an epoch until
every *pipeline* in the epoch is finished rendering.

For iframes it fixes a bug where the compositor didnt wait on the
child pipeline ready state before compositing the window.

Gotchas:
* layout task or script task failure on exit ("task '' failed at sending
  on a closed channel"), this happens if the child iframe shares the
  same script task as the parent and can be avoided by adding the
  sandbox attribute to the iframe.

Other changes:
* Inline set_clipping_rect in compositor.rs
* Commented out ref test simple_iframe.html fails on os x
Merge pull request #2819 from bjwbell/iframe-layers

Restructure compositor layers to work with iframes.
Merge pull request #2873 from Manishearth/xhr-worker

Check for worker scope in responseText setter; r=Ms2ger
Merge pull request #2874 from bjwbell/borders-ref-test

Modify borders ref test to work on OS X
Revert "Merge pull request #2819 from bjwbell/iframe-layers"

This reverts commit 0200b61f713f2cdddcbc06ccd4cb5de11332899a, reversing
changes made to ca968219025a46e57b5cd770ae7c8ac5919876b1.
Merge pull request #2880 from zwarich/iframes-revert

Revert "Merge pull request #2819 from bjwbell/iframe-layers"
Implement Element.matches().