Remove obsolete makefile lines about Netsurf’s libcss.
Add rust-encoding as a submodule.

Upstream: https://github.com/lifthrasiir/rust-encoding
Servo’s fork: https://github.com/mozilla-servo/rust-encoding

As of this writing, upstream’s master branch targets Rust 0.8,
and its rust-0.9-pre branch targets Rust master.
Servo uses a Rust version in-between those.
I pushed a rust-servo branch to our fork
that backports from rust-0.9-pre.
Add support for non-UTF8 CSS stylesheets, with rust-encoding.
Make sure stylsheets have a base URL.
Upgrade to rust-encoding upstream.
Pass parameters directly to 'run_compositor()'.
Introduce 'IOCompositor' to clean up compositor code.
auto merge of #1420 : saneyuki/servo/compositor, r=pcwalton

This change compositor code to objective, short scope, reducing closure functions. It will increase maintainability.

Related: #1351.
layout: Stop going to the DOM to guess width.
layout: Stop going to the DOM for text alignment.

Verified against the existing text alignment reftests.
layout: Stop going to the DOM for vertical align font sizing.
layout: Change a couple of `Box::new` calls that accessed the nodes into
`Box::transform`.
layout: Replace `AbstractNode`s in layout with `OpaqueNode`, preventing
DOM access during reflow.
auto merge of #1410 : pcwalton/servo/opaque-node, r=pcwalton

This shuts off all layout access to the DOM after flow tree construction, which will allow us to run script concurrently with layout during reflow and display list construction—even without the COW DOM. It also gets us closer to making `AbstractNode` noncopyable, which is important for safety because the JS GC will not trace layout.

r? @kmcallister
Remove the bootstrap.css test. It’s not actually useful.
auto merge of #1377 : SimonSapin/servo/encoding, r=kmcallister

Depends on https://github.com/mozilla-servo/rust-cssparser/pull/33 being merged.

Also (unrelated) pass around a base URL for stylesheets.

Adds a new dependency:
Upstream: https://github.com/lifthrasiir/rust-encoding
Servo’s fork: https://github.com/mozilla-servo/rust-encoding

As of this writing, upstream’s master branch targets Rust 0.8, and its rust-0.9-pre branch targets Rust master. Servo uses a Rust version in-between those. I pushed a rust-servo branch to our fork that backports from rust-0.9-pre, and also included some changes that have yet to be merged in upstream pull requests.
layout: Make `NodeRange` use `OpaqueNode` for memory safety.

These were stored in inline flows. This was caught by my WIP changes to
harden layout (yay for Rust!)
auto merge of #1426 : pcwalton/servo/opaque-node-range, r=larsbergstrom

These were stored in inline flows. This was caught by my WIP changes to
harden layout (yay for Rust!)

r? @larsbergstrom
Make Node::is_in_doc O(1)

Added a flags variable inside Node to represent boolean flags, with
is_in_doc being the first of them. It is updated whenever a node is
appended or removed from a parent.

This patch is for:
https://github.com/mozilla/servo/issues/1030
auto merge of #1427 : brunoabinader/servo/is-in-doc, r=jdm

Added a flags variable inside Node to represent boolean flags, with
is_in_doc being the first of them. It is updated whenever a node is
appended or removed from a parent.

This patch is for:
https://github.com/mozilla/servo/issues/1030