Move SVG container paint code to SVGContainerPainter

This patch moves the direct painting code (through paint(...)) to
the new SVGContainerPainter. The resource container subclasses of
RenderSVGContainer have a second painting codepath through draw()
functions which will be moved to a painter class in a separate patch.

This patch is primarily a straight code move but contains the following
non-trivial changes:
1) RenderSVGViewport::applyViewportClip was not implemented directly
but RenderSVGViewportContainer and RenderSVGResourceMarker override it
for clipping. Instead of using applyViewportClip,
SVGContainerPainter::paint now directly handles the clipping of
RenderSVGViewportContainer. RenderSVGResourceMarker's viewport clip
function has been moved in RenderSVGResourceMarker::draw.

2) paintInvalidationRectInLocalCoordinates and selfWillPaint have been
made public on RenderSVGViewport.

BUG=412088

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

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