Reduce coupling between layout and the DOM by separating out the layout interface.

Eventually, the layout interface will be moved along with the DOM into a
separate crate.
Remove the layout debug methods.

Premature abstraction; nothing used the traits polymorphically. Furthermore,
they increased coupling between layout and the DOM.
Separate the DOM and layout into separate crates.
etc: Make tidy more resilient to dirty build directories
Refactor display lists to use less memory.
auto merge of #474 : pcwalton/servo/separation, r=pcwalton

r? @metajack
auto merge of #476 : pcwalton/servo/display-list-refactor, r=pcwalton

r? @metajack
Update README.md

Fix README typos.
Supprot css class selection
Support css class selection (2)
Update rust-css for supporting class selection
Update rust-netsurfcss for supporting class selection
Update libcss
Add test for css class