Use SkImage::newImageSnapshot() in CanvasIMageSource::getImageSourceForCanvas().

When repeatedly creating a pattern from a canvas or when doing a canvas-to-canvas copy,  additional memory is allocated even if the canvas' content don't change between the calls to createPattern() (cf benchmark in the bug 344804, message #7).

The idea is to use a SkImage obtained by calling newImageSnapshot() on the SkSurface encapsulated by the HTMLCanvasElement. This way a new bitmap is created only if the canvas is changed.

This CL depends on the CLs:
- https://codereview.chromium.org/416543002/ (merged)
- https://codereview.chromium.org/406673003/ for SkImage::isOpaque() (merged)


BUG=344804,170021,257428

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

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