Using component context stack to address problems rerendering conditional
components like renderIf.  This turns out to sprawl somewhat, but the basic idea
is that the containing component will be rendered first, pushing onto a stack,
and any prior sibling will have rendered (push and pop both) prior to any given
component.  That can then be used to allow conditional rerenders to figure out
where they should attach to the DOM, which previously had errors for nesting.

There are additional wrinkles for patterns in which rerendering either triggers
another rerender (thus making the stack "artificially deep," with non-contained
components under a given context frame) or is implemented as an unrender/render
pair.

In the prior, buggy implementation, rerender was void and elements returned from
the initial render would survive in container components' elements list, where
they might be used to anchor the rerender of a child... but, being dead refs,
anchoring on them was un-helpful.

@bug W-1925611@
@rev goliver, dchasman@
Merging origin/fabbott/master-pending-rerendercontext into master