We add a new clip scroll tree node type which is a sticky frame. The StickyFrame doesn't do any clipping, but will adjust the position of its contents to satisfy a given set of sticky constraints. The constraints consist of a margin (distance from the particular edge of the viewport) and a max_offset, which determines how far the sticky frame can move from its original (scrolled) position. The design of these constraints can be modified if they are particularly unpleasant for Gecko to implement. Fixes #1277.