Support general raster matrix for RasterSource and DisplayItemList

This CL is a prerequisite for making picture layer tiling to support tiling
in general space. Today we only raster in contents space, which is always
a linear scale of the layer space. To improve raster quality, it is best to
raster in target (render surface) space when possible. A follow-up CL will
be written to utilize this capability to raster layers that have fractional
translation transform.

The following API has been changed:
1. RasterSource::PlaybackToCanvas() no longer takes canvas_bitmap_rect (tile
   extent), canvas_playback_rect (damage rect), and contents_scale. Instead,
   the tile size will be extracted from the canvas size directly, and tile
   offset should be applied to canvas matrix by the caller. Likewise, the
   damage rect and contents scale should be applied to canvas clip and canvas
   matrix by the caller respectively.

2. DisplayItemList::Raster() no longer takes canvas_target_playback_rect (cull
   rect), and contents_scale. Again, those should be applied to canvas clip
   and canvas matrix by the caller directly.

3. DisplayItem::Raster() no longer takes canvas_target_playback_rect (cull
   rect). Use SkCanvas::quickReject() instead.

CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2075873002
Cr-Commit-Position: refs/heads/master@{#401817}
23 files changed