Move the computed style to a new SharedLayoutData struct.

Implementing the CSSOM requires giving the script task access to the
computed style for a node. Moving it into a new SharedLayoutData struct
member of LayoutDataRef seems to be the best way to achieve this.

This is the first step towards #1721.
Remove the argcAndIndex argument from instantiateJSToNativeConversionTemplate.

This commit does not change the generated code.
Remove the isOptional argument and the dealWithOptional return value from getJSToNativeConversionTemplate.

Note that dictionaries currently don't support members without default values
right now.

This commit does not change the generated code.
Drop the pointless indirection in Window::active_timers.
Stop using ~[u8] in http_loader::load.
Avoid unnecessary allocations in try_parse_url.
auto merge of #2405 : Ms2ger/servo/active_timers, r=jdm
auto merge of #2406 : Ms2ger/servo/http_loader-load, r=jdm
auto merge of #2407 : Ms2ger/servo/try_parse_url-owned, r=jdm
Rename GlyphIndex->GlyphId

This will allow us to use the GlyphIndex identifier to refer to glyph indexes into text runs in the future.
Add RangeIndex trait and iterator

This will allow for the definition of typesafe range units in the future, for example for glyph indices. This also adds a macro that allows for the easy implementation of new range index types.
Add some trailing commas
Move the loading of documents in iframes into HTMLIFrameElement.

Right now, the load is kicked off inside the parser glue. This is unfortunate
for several reasons:

1) we'd like to replace the current parser (libhubbub) by our own parser,
   written in Rust, so code intertwined with the parser will have to be
   rewritten;
2) it is impossible to support dynamically (i.e. from script) created iframes
   in this way;
3) the code flow around loading subdocuments is complicated needlessly.

This commit adds the constellation channel (on which the message to actually
load the document is sent) as a field on the Page, to allow HTMLIFrameElement
to access it.

In rewriting the code, support for dynamically created iframes is added, and
a task failure is avoided when the value of the src attribute can not be
parsed.
auto merge of #2403 : Ms2ger/servo/iframe-loading, r=jdm

Right now, the load is kicked off inside the parser glue. This is unfortunate
for several reasons:

1) we'd like to replace the current parser (libhubbub) by our own parser,
   written in Rust, so code intertwined with the parser will have to be
   rewritten;
2) it is impossible to support dynamically (i.e. from script) created iframes
   in this way;
3) the code flow around loading subdocuments is complicated needlessly.

This commit adds the constellation channel (on which the message to actually
load the document is sent) as a field on the Page, to allow HTMLIFrameElement
to access it.

In rewriting the code, support for dynamically created iframes is added, and
a task failure is avoided when the value of the src attribute can not be
parsed.
Make Pipeline::url a plain Url.

It is never mutated, and never None.
auto merge of #2410 : Ms2ger/servo/Pipeline-url, r=pcwalton

It is never mutated, and never None.
auto merge of #2388 : zwarich/servo/cssom, r=jdm

Implementing the CSSOM requires giving the script task access to the
computed style for a node. Moving it into a new SharedLayoutData struct
member of LayoutDataRef seems to be the best way to achieve this.

This is the first step towards #1721.
Add character index type

This is more self-documenting and may highlight errors in the future.
Add some helpful comments
Use box index type for referring to inline boxes