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.
This is a possibility:

diff --git a/src/rendergl.rs b/src/rendergl.rs
```diff
@@ -472,8 +472,13 @@ impl<T> Render for layers::Layer<T> {
                     let clip_offset = content_offset - bounds.origin;
                     Some(clip_rect.translate(&clip_offset))
                 },
-                None => return, // Don't render children, because we have an empty clip rect.
+                None => None,
             };
+
+            // We have an empty clip rectangle, so don't render any children.
+            if clip_rect.is_none() {
+                return;
+            }
         }
 
         for child in self.children().iter() {
```