Move timer firing implemention into Window #1992
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"
Remove the unused cpu_painting field of CompositorData
Use 'background_color' consistently over 'unrendered_color'
Fix indentation
Simplify CompositorData creation

We already have a layer_properties struct, so we should always use it
instead of passing the information in it out-of-band.
Always create CompositorData with a new layer

Since it makes no sense to create one without the other, the public
interface shouldn't let you do anything else.
Implement Element.matches().
Merge pull request #2876 from saneyuki/match

Implement Element.matches()
Remove unused field before other upcoming changes.
Merge pull request #2883 from glennw/textrun-1

Remove unused field before other upcoming changes; r=Ms2ger
Merge pull request #2850 from ebalint/1992_move_timer_firing_impl

Move timer firing implemention into Window #1992
Merge pull request #2881 from zwarich/compositor-data-cleanup

CompositorData cleanup