Pass a viewport to the rendering code

Part of servo/rust-layers#114
auto merge of #3525 : mbrubeck/servo/viewport, r=zwarich

Updates to the latest rust-layers and rust-geom to pick up
servo/rust-layers#114.  r? @zwarich
Mask root layer rectangles to their boundaries

This prevents iframes contents from overflowing their root layers.
auto merge of #3526 : mrobinson/servo/masks-to-bounds, r=zwarich

This prevents iframes contents from overflowing their root layers.
Eliminate servo_util::atom

We only needed this for Encodable, and now we use JSTraceable instead.
Enable acid2 reftest on Linux. Update rust-layers.
Use string-cache's Namespace type
auto merge of #3529 : glennw/servo/linux-acid2, r=metajack
auto merge of #3530 : kmcallister/servo/namespace-atom, r=Ms2ger
Refactor background image, fix fixed attachment. Improve acid2.
Convert a method from &JSRef to JSRef

This also removes the unnecessary formation of a trait object.
auto merge of #3535 : glennw/servo/fixed-bg, r=pcwalton
auto merge of #3536 : zwarich/servo/more-jsref, r=Manishearth

This also removes the unnecessary formation of a trait object.
Use LayerPixel for Layer bounds and most arguments

When interacting with Layers it is simpler to use LayerPixels, which
are unscaled pixels in the Layer coordinate system. This removes a lot
of room for error and makes things simpler.
auto merge of #3537 : mrobinson/servo/scale, r=zwarich

When interacting with Layers it is simpler to use LayerPixels, which
are unscaled pixels in the Layer coordinate system. This removes a lot
of room for error and makes things simpler.
Remove a prefix from a method name by manually resolving methods
Add a lifetime parameter to the ElementHelper trait

This refines the lifetime used in get_local_name / get_namespace and
makes it independent of the lifetime on the &self parameter.
Disambiguate methods without using trait objects
Refine a lifetime parameter on TElement's get_local_name
Convert the remaining ElementHelpers methods to take self