Use str.char_offset_iter instead of manually calling str.char_range_at.
Don't require passing a root element to Document::new (needed for issue #888).
Address review comments.
Remove unnecessary mutability.
Remove Document::set_root.

All callers have an AbstractDocument, and this makes my life easier later.
Cleanup some code.
auto merge of #1023 : Ms2ger/servo/cleanup, r=jdm
auto merge of #1016 : Ms2ger/servo/ownerdoc, r=jdm
Rename CacheableWrapper to Reflectable.
Rename WrapperCache to Reflector.

I think the abstraction from the raw JSObject is still probably worthwhile for
now.
Rename get_wrappercache() to reflector(). v1

I also updated some variable names in the codegen.
Rename {get,set}_wrapper to {get,set}_jsobject. v1
Rename WrappableDocument stuff.
Rename some local variables and shorten some lines.

This was done manually, and might benefit from a more careful review.
Rename the |wrapper| field in Reflector.
Rename |wrapper| to |reflector_| in Reflectable implementations for DOM objects.
auto merge of #1028 : bholley/servo/reflector_rename, r=jdm

There are still a few instances of "wrapper"-ish names scattered throughout the code, but this is a good start.
Remove unused imports in htmlformelement
auto merge of #1031 : luisbg/servo/master, r=kmcallister

HTMLFormElementTypeId, ElementNodeTypeID and Node are not used anymore in htmlformelement.rs

The compiler was giving a warning error about unused imports.
auto merge of #1013 : huonw/servo/text-iter, r=pcwalton

And 3 other minor clean-ups: removing a redundant `if`, a redundant function call, and using `slice_from` where it is possible.