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
Set requested alpha size for framebuffer, and hard code pixmap depth.

This fixes #3245 and possibly #2064 as well.
Merge pull request #116 from glennw/fix-linux-builder

Set requested alpha size for framebuffer, and hard code pixmap depth.
Introduce LayerPixel and use it where applicable

LayerPixel represents a "pixel" in layer coordinates, before it is
scaled by the Scene scale and other layer transforms. This is a much
more natural way to store layer sizes and should fix and prevent future
issues with hidpi displays and zoomed views.