[SVG] Refactor getIntersectionList() and getEnclosureList()

This CL moves most of the implementation out of RenderSVGModelObject and
into SVGSVGElement (which is the only client). Some notes:

* use the consolidated SVGGraphicsElement::computeCTM() (which is
  accumulating localCoordinateSpaceTransform()s and not
  localToParentTransform()s like the old getElementCTM() did <- root
  cause for the zooming bug)
* only force a layout update once, at the entry point, instead of on each
  getElementCTM() call.
* detect the stopping element on the fly, instead of an additional upfront
  ancestor crawl.
* transforms are now correctly computed relative to the target <svg>
  element instead of the nearest viewport.

BUG=155277
R=pdr@chromium.org,schenney@chromium.org,fs@opera.com,rob.buis@samsung.com

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

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