Implement "Copy image" for canvas (blink side).

Many users want to copy the image of <canvas> to clipboard. (like <img>)
As well as being useful, The feature is already supported in Firefox and IE.

Chromium side:
  https://codereview.chromium.org/275833002/

BUG=369092

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

git-svn-id: svn://svn.chromium.org/blink/trunk@177547 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Directly update composited transforms

This CL introduces a special case for updating composited transforms. Now when an
element with an inline transform is composited, we can skip the bulk of the work
in the compositing update and directly update the transform of its graphics layer.

To make this work, we need to skip the overlap test, which does work proportional
to (the square of) the size of the document. We do this by assuming that later
RenderLayers overlap layers that are composited and have inline transforms. Most
of these layers will squash back down into a single graphics layer, so we won't
cause a layer explosion.

In RenderLayer::styleChanged, we recognize the condition for a direct transform
update and simply mark a single CompositedLayerMapping as needing a local graphics
update. We could save more time by introducing a smaller GraphicsLayerUpdateScope
just for transforms, but that's work for a future CL.

This CL makes the compositing update for the Polymer calculator ~9.1x faster. The
entire time spent below WebViewImpl::layout is ~3.3x faster.

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=177495

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

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