Allow layers to mask children to their boundaries

This allows preventing iframes from overlowing their boundaries. We
also ensure that buffer requests are made for child layers, even when
their parents don't overlap the window rect. This is because children
can lie completely outside the bounds of their parents.
Merge pull request #113 from mrobinson/masks-to-bounds

Allow layers to mask children to their boundaries
Allow scene to specify its GL viewport
Merge pull request #114 from mbrubeck/viewport

Allow scene to specify its GL viewport
Allow layers to paint their own background colors

Previously there was only a scene-wide background color, but now each
layer carries its own background color. We can paint this by
generalizing the SolidLineProgram in the OpenGL renderer.