Rename variables that refer to global objects.

This clarifies whether those variables will point to a Window object or an
arbitrary global object.

Note in particular that all IDL Constructors will accept an arbitrary global
object.
Simplify the implementation of cx_for_dom_reflector.
Put some 'use' statements in alphabetical order.
Make some DOM fields private.

Relevant to #2242.
Remove some Cells for immutable members.
Introduce abstractions for global scopes.

Part of #2811.
Support FormData outside Window scopes.
Add newlines in global.rs.
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&render states to work with multiple
pipelines, the compositor render and ready states are set
per pipeline. This fixes the problem with iframes, where the compositor
didnt wait for the child pipeline to finish rendering 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.
* ref test simple_iframe.html fails on os x