[SVG] Invalidate indirect relative-length clients on viewport size change.

Currently, RenderView::layout() notifies its immediate SVG root children
of viewport size changes:

            if (child->isSVGRoot()) {
                ASSERT(child->node());
                ASSERT(child->node()->isSVGElement());
                toSVGElement(child->node())->invalidateRelativeLengthClients(&layoutScope);
            }

But this doesn't work for HTML documents, where the root SVG renderers
are not direct children of RenderView.

This CL introduces an SVGDocumentExtensions-based registry for tracking
SVG root elements with relative length descendants, and updates
RenderView::layout() to dispatch the viewport resize event using this
new mechanism. Indirect relative-length children are now correctly
notified, regardless of the render tree topology.

BUG=307161
R=schenney@chromium.org,pdr@chromium.org

Review URL: https://codereview.chromium.org/27230006

git-svn-id: svn://svn.chromium.org/blink/trunk@159839 bbb929c8-8fbe-4397-9dbb-9b2b20218538