[graphite] Support code for piet render tasks

- New support code lives under graphite/piet, defining
  PietRenderer (which abstracts backend API object dependencies) and
  PietRenderTask (which integrates piet with graphite's task system).

- ResourceProvider owns a single PietRenderer instance. DrawContext now
  has functions for accumulating and snapping a piet task. Device is
  responsible for snapping and recording a piet task.

Bug: b/241725582
Change-Id: Ie2f3bbb31656553c3d9cb6adeef8156874647743
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/566176
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
16 files changed