Fix GLUT build for Android
auto merge of #1668 : larsbergstrom/servo/windowing_android_fixups, r=metajack

When I was doing my earlier PR for @mut-removal in windowing, I failed to add/commit/fetch/merge/push the changes in my Android-targeting copy of the repo and only just noticed.

r? @metajack
Use DOMString more consistently.
auto merge of #1690 : Ms2ger/servo/DOMStrings, r=jdm
style: Separate out style structs into inherited and initial structs.

This doesn't make much of a difference in performance, but will be
necessary for style struct sharing.
layout: Stop storing intermediate applicable declarations inside layout
data.

9% improvement in style recalc on the rainbow page.
layout: Implement basic style sharing.

No improvement on the rainbow page, but necessary for some other
optimizations we want to do.
layout: Cache applicable-declarations-to-computed-values mappings.

If the cache is hit, then we can only compute inherited properties. This
is a WebKit optimization.
style: Eliminate a temporary vector when performing selector matching.

26% improvement in style recalc on the rainbow page.
layout: Aggressively try to share styles with the last few nodes seen.

This roughly implements the same cache found in Blink. 50% improvement
on the rainbow page, but at the cost of reducing parallel gains down to
nothing. I added a new page, `perf-rainbow-hard.html`, which disables
the optimizations in both Blink and Servo.