Remove cullRect() from PaintOpBuffer.

Pass it directly to RecordPaintCanvas and ToSkPicture, and other skia
methods which is where it is used.

This allows us to more easily get rid of cc::DisplayItem and its
subclasses, replacing them with a PaintOpBuffer in DisplayItemList
directly instead. The difficulty I faced with that was that if
DisplayItemList has a single PaintOpBuffer, then it has a single
cull rect. However when painting, each "batch" of PaintOps can
have a different cull rect (corresponding to the PaintOps that
would have been in a single DisplayItem before). So, instead the
cull rect should be a property of recording at the
RecordPaintCanvas level, which is a temporary object. As such,
creators of cc::RecordPaintCanvas (mostly thru cc::PaintRecorder)
need to manage the cull rect themselves to pass to things that
want to use it with the cc::PaintOpBuffer (aka cc::PaintRecord at
this time).

Original code review was done on gerrit:
https://chromium-review.googlesource.com/c/503472

R=chrishtr@chromium.org, enne@chromium.org, pdr@chromium.org
BUG=671433, 646010
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2889653002 .
Cr-Commit-Position: refs/heads/master@{#472917}
67 files changed