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 fragment index type for referring to inline DOM fragments
auto merge of #2389 : bjz/servo/indices, r=pcwalton

r? @pcwalton