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.