Suppress the drawing of empty-bounds display lists.

This is a follow up to https://codereview.chromium.org/136583009, which,
in its original form, exposed an SVG sizing issue:
repaintRectInLocalCoordinates() may be empty for resource containers
with objectBoundingBox units.

The problem is triggered when mixing objectBoundingBox and userSpaceOnUse
resource containers, for example:

  <clipPath id="clip1">
    <rect x="100" y="100" width="100" height="100"/>
  </clipPath>
  <clipPath id="clip2" clipPathUnits="objectBoundingBox" clip-path="url(#clip1)">
    <circle cx="0.5" cy="0.5" r="0.5"/>
  </clipPath>

For clip2, SVGRenderSupport::intersectRepaintRectWithResource() ends up
intersecting the initial repaint rect [0 0 1 1] with clip1's resource
bounding box [100 100 200 200], even though the two are expressed in
unrelated coordinate systems. This is another side effect of our
one-resource-renderer-vs-multiple-clients approach, which prevents
resolving OBB relative lengths at layout time.

The issue is exposed when suppressing the drawing of empty-bounds
pictures (either at the GraphicsContext level, as with this patch, or at
the tile grid recorder level - when using impl-side painting).

The workaround is to use strokeBoundingBox() when sizing display lists
for RenderSVGResourceClipper & RenderSVGResourceMasker. Unlike
repaintRectInLocalCoordinates(), strokeBoundingBox() does not get
intersected with local clips/masks.

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

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

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