* Simpler image cache API for clients to use.
* Significantly fewer threads.
* One thread for image cache task (multiplexes commands, decoder threads and async resource requests).
* 4 threads for decoder worker tasks.
* Removed ReflowEvent hacks in script and layout tasks.
* Image elements pass a Trusted<T> to image cache, which is used to dirty nodes via script task. Previous use of Untrusted addresses was unsafe.
* Image requests such as background-image on layout / paint threads trigger repaint only rather than full reflow.
* Add reflow batching for when multiple images load quickly.
* Reduces the number of paints loading wikipedia from ~95 to ~35.
* Reasonably simple to add proper prefetch support in a follow up PR.
* Async loaded images always construct Image fragments now, instead of generic.
* Image fragments support the image not being present.
* Simpler implementation of synchronous image loading for reftests.
* Removed image holder.
* image.onload support.
* image NaturalWidth and NaturalHeight support.
* Updated WPT expectations.
The hubbub bindings set document.characterSet but we don't use it for anything.
html5ever doesn't parse charsets from <meta> tags yet, and I'd rather add that
as part of adding actual support for other encodings (which Servo never had
with hubbub).
Switching to html5ever also changes attribute parsing slightly (bringing it in
line with the current spec) and this breaks some of the <img srcset> tests. We
don't support this feature at all.
Some other things change due to bugs in hubbub not present in html5ever.