Split SVGFilterbuilder into "builder" and "node map" parts

This separates the longer lived state (the LayoutObject->FilterEffect
and FilterEffect dependents maps) from the state that's only used/valid
while building a (sub)filter-graph. The former is moved to the new
class SVGFilterGraphNodeMap while the latter remain in
SVGFilterBuilder. SVGFilterBuilder can thus be converted to something
that is allocated on the stack and only kept for the building
operation. FilterData is changed to the keep a SVGFilterGraphNodeMap
instead of a builder.
The graph-building code in ReferenceFilterBuilder::build and
LayoutSVGResourceFilter::buildPrimitives is consolidated into
SVGFilterBuilder::buildGraph, with the more "relaxed" behavior of the
former kept. This should only result in a change in behavior for the
case where externally referenced filters are used.

BUG=109224,533457

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

Cr-Commit-Position: refs/heads/master@{#353125}
7 files changed