Make manifest updates/html5lib non mandatory
Replace Au::zero_* with generic methods
layout: Re-enable parallel layout by removing all `RefCell` instances
from `Flow`s; in the process, remove `InlineInfo` in favor of the
range-based design that was originally planned and halfway implemented.

Now, the DOM tree structure for inline flows is reflected not by a
series of arrays but instead by a flat list of ranges into the list of
boxes. As part of this, the `border` and `padding` fields, which were
incorrect in the case of inlines and necessitated separate
`noncontent_inline_foo` methods, have been merged into a single
`border_padding` field that is always guaranteed to be correct after
width assignment, even for inlines.
layout: Rewrite display list building to be parallel and to handle
overflow correctly, and opportunistically lay out blocks in parallel
even if floats are present.

This commit fixes the `inline-height-test` in Acid2 by implementing
proper overflow as well as the inline "strut".  (See CSS 2.1 § 10.8.1.)
Acid2 was accidentally being rendered properly before because tables'
descendant flows were not being laid out properly.

Display list building is now parallel and is done by bubbling up display
items and layers from parent to child. Speedups of around 60%-70% are
observed on Wikipedia with a 4-core HyperThreaded Core i7.  More
optimizations are possible; this is just a start.

To minimize the amount of data that needs to be bubbled up, as well as
to make proper handling of `overflow: hidden` clipping easier, the
`StackingContext` abstraction is now purely internal to the display
list.  That is, instead of placing items into a stacking context
directly, display items are placed into display lists alongside a
stacking level.  When a stacking context is complete, it is flattened
with the the `flatten` method, which shuffles the display items that
make up the context into their proper order while handling clipping
properly.
layout: Guess the width of block formatting contexts so that we can
speculatively lay them out in parallel
Webidl and basic implementation of XHR object
Add JSCLASS_DOM_GLOBAL to DOM global classes, and assert it is used.

It seems unlikely that this will ever be hit, but potentially hard to
figure out if it ever is hit.
Use ByteString in XHR
Turn on GC all the time. Fix rooting errors during parsing and storing timers. Fix borrow errors during tracing.
Implement safe rooting strategy via Unrooted, Root, JSRef, and JS.
Remove JS::get/get_mut to enforce sound rooting practices.
Move WebIDL methods to traits implemented by JSRef types.
Remove abstract_self.
Move all methods on T to JSRef<T> or JS<T> as appropriate.
Allow controlling GC zeal via JS_GC_ZEAL environment variable.
Move stack roots into Root types instead of RootCollection, removing the aribtrary 10 roots per stack frame restriction.
s/Unrooted/Temporary/g
Root Temporary values for the duration of their lifetime.
Store per-ScriptTask RootCollection in TLS and use that in favour of per-frame collections.
Remove all root collections.