add namespaces to elements
auto merge of #1358 : therealglazou/servo/therealglazou/namespaces, r=jdm

Add a namespace to elements. Sets by default the namespace to HTML for elements created by hubbub. Fixes :nth-of-type() and friends to match the namespace.

Note: prefix is not added by this PR because hubbub does not preserve it and I wanted to keep the patch as simple as possible.
Change Namespace::to_str() to not allocate and return a reference.
auto merge of #1359 : SimonSapin/servo/ns-noalloc, r=metajack

Also rename Element::get_namespace to get_namespace_url.
Document the Au struct and add similar font metrics debug as mac
Implement font leading metric for linux platform

Fixes #76.
auto merge of #1352 : dhedlund/servo/issue_76, r=jdm,metajack

Fixes #76.

Implemented the only font metric remaining to resolve issue #76 for the Linux platform.

There are still some variations between Linux and OS X font metrics.  Looking at values for the "Times New Roman" font, the following metrics differed by over 10%:  `leading`, `x_height` and `max_advance`.  It was not obvious if this would create any major difference in rendering, or whether the discrepancies would be handled in platform specific ways during the rendering process.  Only `x_height` is being used by existing code.  The `leading` property under Linux is still an order of magnitude off from the OS X version, but they are computed with similar calculations.  Issue #1355 has been opened to further investigate the discrepancies.

#### Platform comparison of font metrics for "Times New Roman" between Linux and OS X:
**Au** is the raw metric values stored in the `FontMetrics` struct.  **% of em** is how large that value is relative to the raw `em_size` of the font as a percentage.  Linux reports the pt size differently than OS X, but this is probably because the linux platform uses hard-coded points-per-inch value (hard-coded in `src/components/util/geometry.rs`), whereas OS X uses the points-per-inch value provided by the font library.

    +-----------------------------------+  +-----------------------------------+
    | Linux (@14.25pt, 1.33em)          |  | OS X (@19.35pt, 1.0em)            |
    +------------------+------+---------+  +------------------+------+---------+
    | property         |   Au | % of em |  | property         |   Au | % of em |
    +------------------+------+---------+  +------------------+------+---------+
    | underline_size   |   55 |    4.82 |  | underline_size   |   60 |    5.17 |
    | underline_offset | -151 |  -13.25 |  | underline_offset | -120 |  -10.34 |
    | strikeout_size   |   56 |    4.91 |  | strikeout_size   |    0 |    0.00 |
    | strikeout_offset |  295 |   25.88 |  | strikeout_offset |    0 |    0.00 |
    | leading          |  541 |   47.45 |  | leading          |   60 |    5.17 |
    | x_height         | 1015 |   89.04 |  | x_height         |  660 |   56.85 |
    | em_size          | 1140 |  100.00 |  | em_size          | 1161 |  100.00 |
    | ascent           | 1015 |   89.04 |  | ascent           |  893 |   76.92 |
    | descent          |  246 |   21.58 |  | descent          |  203 |   17.48 |
    | max_advance      | 1199 |  105.18 |  | max_advance      | 2820 |  242.89 |
    +------------------+------+---------+  +------------------+------+---------+

    +-----------------------------------+  +-----------------------------------+
    | Linux (@24pt, 1.33em)             |  | OS X (@32.683333pt, 1.0em)        |
    +------------------+------+---------+  +------------------+------+---------+
    | property         |   Au | % of em |  | property         |   Au | % of em |
    +------------------+------+---------+  +------------------+------+---------+
    | underline_size   |   93 |    4.84 |  | underline_size   |  120 |    6.12 |
    | underline_offset | -255 |  -13.28 |  | underline_offset | -240 |  -12.24 |
    | strikeout_size   |   95 |    4.95 |  | strikeout_size   |    0 |    0.00 |
    | strikeout_offset |  496 |   25.83 |  | strikeout_offset |    0 |    0.00 |
    | leading          |  912 |   47.50 |  | leading          |   60 |    3.06 |
    | x_height         | 1710 |   89.06 |  | x_height         | 1080 |   55.10 |
    | em_size          | 1920 |  100.00 |  | em_size          | 1960 |  100.00 |
    | ascent           | 1710 |   89.06 |  | ascent           | 1544 |   78.77 |
    | descent          |  415 |   21.61 |  | descent          |  365 |   18.62 |
    | max_advance      | 2020 |  105.21 |  | max_advance      | 4740 |  241.84 |
    +------------------+------+---------+  +------------------+------+---------+

    +-----------------------------------+  +-----------------------------------+
    | Linux (@45pt, 1.33em)             |  | OS X (@60.833333pt, 1.0em)        |
    +------------------+------+---------+  +------------------+------+---------+
    | property         |   Au | % of em |  | property         |   Au | % of em |
    +------------------+------+---------+  +------------------+------+---------+
    | underline_size   |  175 |    4.86 |  | underline_size   |  180 |    4.93 |
    | underline_offset | -479 |  -13.31 |  | underline_offset | -480 |  -13.15 |
    | strikeout_size   |  179 |    4.97 |  | strikeout_size   |    0 |    0.00 |
    | strikeout_offset |  931 |   25.86 |  | strikeout_offset |    0 |    0.00 |
    | leading          | 1709 |   47.47 |  | leading          |  180 |    4.93 |
    | x_height         | 3208 |   89.11 |  | x_height         | 2040 |   55.89 |
    | em_size          | 3600 |  100.00 |  | em_size          | 3650 |  100.00 |
    | ascent           | 3208 |   89.11 |  | ascent           | 2925 |   80.14 |
    | descent          |  778 |   21.61 |  | descent          |  690 |   18.90 |
    | max_advance      | 3788 |  105.22 |  | max_advance      | 8880 |  243.29 |
    +------------------+------+---------+  +------------------+------+---------+

    +-----------------------------------+  +-----------------------------------+
    | Linux (@30.75pt, 1.33em)          |  | OS X (@41.9pt, 1.0em)             |
    +------------------+------+---------+  +------------------+------+---------+
    | property         |   Au | % of em |  | property         |   Au | % of em |
    +------------------+------+---------+  +------------------+------+---------+
    | underline_size   |  120 |    4.88 |  | underline_size   |  120 |    4.77 |
    | underline_offset | -327 |  -13.29 |  | underline_offset | -360 |  -14.32 |
    | strikeout_size   |  122 |    4.95 |  | strikeout_size   |    0 |    0.00 |
    | strikeout_offset |  636 |   25.85 |  | strikeout_offset |    0 |    0.00 |
    | leading          | 1168 |   47.47 |  | leading          |  120 |    4.77 |
    | x_height         | 2192 |   89.11 |  | x_height         | 1440 |   57.27 |
    | em_size          | 2460 |  100.00 |  | em_size          | 2514 |  100.00 |
    | ascent           | 2192 |   89.11 |  | ascent           | 1991 |   79.20 |
    | descent          |  532 |   21.63 |  | descent          |  487 |   19.37 |
    | max_advance      | 2588 |  105.20 |  | max_advance      | 6120 |  243.44 |
    +------------------+------+---------+  +------------------+------+---------+
Refactor DocumentDamageLevel::add and add test
Reflow with full style damage when content changes

Fixes #664.
auto merge of #1360 : kmcallister/servo/content-changed, r=jdm

r? @jdm
removing @ from flowtree. (but cloning boxes when creating a display list)