Unify macros which generate binding codes.
Clean up macros to handle html tags.
CSS: separate cascading from selector matching, add style attributes.
Move the gfx::geometry module to servo_util::geometry.

This is part of #1006, in order to use Au from the script crate
without introducing a circular crate dependency.
CSS: Use the actual Au type for lengths
auto merge of #1074 : saneyuki/servo/macro, r=jdm
Move Element::get_attr to a trait defined in util::tree

… and add a get_local_name() method to that trait.
Add a with_imm_element_like() method.

… gives a generic element from a generic node.
Move AbastractNode::is_element to the TreeNodeRef trait.
CSS: Use libutil’s traits in Selector matching to not depend on libscript.
Pass scripts as ~str to support non-ASCII string literals etc.

Of course scripts on the Web are not always encoded as UTF-8 and we will have
to deal with that at some point.
Failing for a blank line before the license, really?
auto merge of #1075 : SimonSapin/servo/newnewcss, r=kmcallister

I believe this is all the preparatory work discussed in #1006 and #1057: The new 'style' crate implements the whole style system (including parsing, matching and cascading) and only depends on cssparser and util, so that gfx, script and main can all depend on it.

Next: porting the layout code to this. (Really, this time! I think.)
Convert between JS and Rust strings in a way that handles Unicode

This doesn't handle invalid UTF-16 and may not be efficient.  It's just a small
change to make things better until we decide what we're doing about strings in
the long run.

Fixes #1068.
Test non-ASCII tag names
Remove unused aTriedToWrap argument.
auto merge of #1078 : Ms2ger/servo/triedToWrap, r=jdm
CSS: rexport types and variants for computed values.
Make Node.owner_doc private.
auto merge of #1066 : Ms2ger/servo/priv-owner-doc, r=jdm

When `Document` is a `Node`, we can only set its `owner_doc` after creating the `AbstractDocument`, and thus the `Document`, and thus the `Node`; i.e., when creating the `Node`, the `AbstractDocument` can't exist yet. That means that we'll need to turn `owner_doc` back into an `Option`. We don't want to expose that to everyone, though, so this adds encapsulation so we'll be able to just `unwrap` in the `owner_doc()` function rather than at all call sites.