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.
Build with upgraded SpiderMonkey.
Enable rooting SM primitive types.
Report exceptions from callbacks to fix some asserts exposed by WPT.
Add useful JS backtrace method.
Fix worker assertions. Add persistent rooting via a refcounting mechanism for DOM types. Allow Root values to contain SpiderMonkey primitive types. Make proxy-based types display the correct class name.
Reenable the JITs.
Clean up warnings.
Pick up SpiderMonkey configure changes.
Get the latest mozjs changes.
Silence more warnings.
Pick up rust-mozjs changes.