Give root layers a scrollable policy

This allows iframe layers to move properly when their parents scroll
and is necessary to properly track their masking rects as their
children move and to draw their backgrounds in the proper position.
Properly size root layers

Root layers should be sized to their frame rectangles and the root of
the root layers should track the window size. This is important because
layers need to be properly sized to scroll.
Differentiate clearly how child layers handle scroll events

This allows the scroll handler to know if a child layer didn't handle
an event or the scroll position of the child layer was simply unchanged.
Don't let base layers override root layer size

Base layers (the background layer of each frame) shouldn't override the
size of their root layers. This allows base layers to scroll inside
root layer frames. This does mean that when determining the maximum
scroll position, we need to look at the size of scrolling root children
though.
Compile scrolling offsets when assign content offset

When traversing the layer tree to assign content offset, the new offset
needs to take into account any addition offset from children that are
scrolling roots. This means that when you scroll a parent frame, it
doesn't override the scroll position of its children.