Add support for small-caps font-variant.

Ref: 2554.
Add #[jstraceable] syntax extension
Add fixme comment for future work, make scale factor a constant.
Handle null strings in Namespace::new.

This also avoids a string copy in the rare case of an unrecognized namespace.
Remove redundant into_string() calls.
Add untraceable! macro
layout: Implement `white-space: nowrap`.

Improves the Reddit header.
Merge pull request #3459 from glennw/small-caps

Add support for small-caps font-variant.
Use JSTraceable everywhere
Update docs
Merge pull request #3466 from Ms2ger/into_string

Remove redundant into_string() calls.; r=jdm
Merge pull request #3458 from pcwalton/whitespace-nowrap

layout: Implement `white-space: nowrap`.
Address review comments
Merge pull request #3465 from Ms2ger/ns

Handle null strings in Namespace::new.
Merge pull request #3468 from Manishearth/jstraceable

Replace our usage our Encodable with JSTraceable; r=jdm
layout: Enhance the heuristic that guesses the inline size of block
formatting contexts.

The widths of block formatting contexts depend on the floats prior to
them. To avoid a circular dependency between width assignment and height
assignment, we must guess their widths during the assign-widths pass.
The old code simply used the size of the last float, whether
left-floated or right-floated, but this proved insufficient to handle
layouts like those seen on Reddit. The new heuristic keeps track of both
left and right floats independently and sums the width of all left and
right floats to determine the width of a block formatting context. This
is still insufficient to properly lay out Reddit, but the results are
much more acceptable.

A fully correct approach will require that blocks be laid out again if
the initial guess proved to be incorrect. A `TODO` is in the code to
handle this case.