Allow SVG images containing data images to not taint canvases

This patch allows SVG images that contain data uri encoded images to
not taint the canvas. This patch relies on r156997 which made
createPattern synchronously snapshot images so that
currentFrameHasSingleSecurityOrigin() no longer has to check at draw-
time whether the referenced SVG image pattern is safe to draw. Now, we
check that the origin is clean when the pattern is created, or when
drawImage() is called.

As a result of this patch, any SVG image containing a foreignObject,
or any SVG image that contains an image that contains a foreignObject
will taint the canvas. Other cases of images in images are allowed.

This patch has two main changes:
1) hasSingleSecurityOrigin() has been renamed
currentFrameHasSingleSecurityOrigin to make it clear that images are
not guaranteed to have a global, static security origin but instead
can go in and out of having a single security origin due to
animations. The test in r156997 enforces this.
2) SVGImage::currentFrameHasSingleSecurityOrigin has been modified
to recursively check if all contained images have a single security
origin. In the case of SVG images, the only non-single-security-origin
element is currently foreignObject.

BUG=279445

Review URL: https://chromiumcodereview.appspot.com/23523010

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