Fix 2D canvas state persistency after OffscreenCanvas.transferToImageBitmap

This change restores the matrix and clip state stack on the new
ImageBuffer that get created by OffscreenCanvasRenderingContext2D
after the previous buffer was torn off by transferToImageBItmap.
This change also adds the clip() method to OffscreenCanvasRenderingContext2D.

BUG=593349

Review-Url: https://codereview.chromium.org/1995733005
Cr-Commit-Position: refs/heads/master@{#396559}
12 files changed