Pass a non-Option SubpageId to Pipeline::with_script.

The ScriptTask is only reused for subpages, so there's no reason to pass an
Option.
Rename the pipeline ID fields in NewLayoutInfo.

This will make the distinction clearer with the subpage ID field to be added.
Add a subpage_id field to NewLayoutInfo.
Store the subpage id in the Page.
Instate a pre-wrap hook that outerizes its argument, to satisfy an undocumented JSAPI requirement.
Implement iframe.contentWindow.
Make RangeIndex trait more general
Improve Range method documentation and field and parameter names
Use JS_ObjectToOuterObject in wrap callbacks.
Use a tuple of fragment and glyph indices as the index type for LineBoxes

Glyph indices are currently not tracked, once they are, they will allow us to implement faster line breaks in the future.
Add some debug assertions
auto merge of #2443 : bjz/servo/linebox_range, r=pcwalton

Glyph indices are currently not tracked, once they are, they will allow us to implement faster line breaks in the future.

cc. @pcwalton
Remove unused imports for UnionTypes codegen. Fixes #2440.
Remove unnecessary 'pub's from IOCompositor
Use CharIndex instead of GlyphIndex for LineIndices

All of the text run methods use character indices and the split_to_width function also uses character indices. Therefore it will be easier to use character indices to keep track of line breaks than glyph indices.
Reorganise comments
Remove extra split_to_width call

This does not seem to do anything, and according to @pcwalton it might be unnecessary. Float layout is rather broken anyway, and needs to be reworked.
Add gdb pretty printer helpers for TrustedNodeAddress etc. Just a starting point.
Make some cases of image_cache_task::Msg priv.
Reorder the cases of image_cache_task::Msg so that the priv ones are adjacent.