second attempt at Section/Sections at page.

Simplified the implementation to use Section and Sections classes
that inject a 'root_fn' to the ElementGetter subclasses so that the
switch to the root element that defines a section is done more
predictably.

Reduced frame switching to as late as possible so unnecessary switches
don't occur.