Add HashCache and switch all caches from Copy to Clone
Add utility methods to Range
Cache shaped text at word granularity
auto merge of #548 : sfowler/servo/glyph-store-cache, r=pcwalton

This PR makes text runs store the results of shaping as a vector of ARC<GlyphStore>; each element of the vector holds the shaped glyphs for a nonbreakable unit of text (basically a word). This change allows us to cache the shaped glyphs for the words, an approach that Gecko (and probably WebKit) uses. We get pretty good cache hit ratios even on the first run of layout for a page (I saw 62% on Wikipedia's main page today), although a lot of that is due to whitespace. This really comes into its own on subsequent layout runs, though, which are completely cached in the typical case.
Don't send a resize event if the window size didn't change
auto merge of #551 : sfowler/servo/run-layout-once, r=metajack

Performance will be better and benchmarking easier if we don't run layout an extra unnecessary time when loading a page from the commandline. This is happening because we always send a resize event to the script task from the compositor whenever the platform tells us one happened, even if the window size didn't change. This PR fixes this by checking that the window size is actually different before sending the event.
Fixes check-content target.
auto merge of #555 : sankha93/servo/master, r=jdm

Fixes the broken check-content target as reported by @jdm in #519.
add pipeline.rs, modularized pipelines communicating with constellation
rename engine --> constellation
forward/back navigation with shift+backspace and backspace, respectively
naive caching of render layers