Move SVG shape painting code to SVGShapePainter

This patch moves all SVG shape (path,rect,ellipse,circle,polyline,line,
polygon) painting code to SVGShapePainter.

This megapatch is primarily a code move without changes. The two big
changes are:
1) All painting code for RenderSVG{Shape,Path,Rect,Ellipse} has been
moved to SVGShapePainter. The original designer of this code went
OOP crazy and created a delicious spaghetti of fillShape and
strokeShape. These virtual functions have been replaced with two new
virtuals that are a bit easier to digest: useRectRenderingFastPath and
useEllipseRenderingFastPath.

2) The marker code only applies to "markable elements"[1] and is only
needed on RenderSVGPath. The marker data and functions have been moved
to RenderSVGPath which shrinks RenderSVG{Rect,Ellipse} by a pointer
and cleans up RenderSVGShape.

[1] https://svgwg.org/svg2-draft/single-page.html#intro-TermMarkableElement

BUG=412088

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

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