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.
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
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
Fix file mode for servo.rs

For some reason this was set to +x
Use a match rather than a for loop for last_loaded_url in ScriptTask::load.
Merge Page and PageTree.
fixup! Use a match rather than a for loop for last_loaded_url in ScriptTask::load.
Use fragment index type for referring to inline DOM fragments
auto merge of #2389 : bjz/servo/indices, r=pcwalton

r? @pcwalton
auto merge of #2417 : Ms2ger/servo/scripttask-load-option-iter, r=pcwalton

...ad.
Add message to fonts.len() == 0 assert
auto merge of #2420 : Ms2ger/servo/merge-Page-PageTree, r=pcwalton
Move Window helper methods to a WindowHelpers trait
auto merge of #2394 : Ms2ger/servo/instantiateJSToNativeConversionTemplate, r=jdm

This moves all the handling of optional arguments into `CGArgumentConverter`, and leaves `instantiateJSToNativeConversionTemplate` to only deal with the declaration of stack variables.
Remove addHTMLElement from Bindings.conf.

We can just use the defaults for all of the HTML elements for now and
deal with the nonstandard behavior later. This fixes #2207.