[graphite] Introduce ComputePipeline

* Added the ComputePipelineDesc, ComputePipeline and MtlComputePipeline
  classes as the compute stage equivalents of GraphicsPipelineDesc,
  GraphicsPipeline, and MtlGraphicsPipeline.

* Implemented rudimentary resource tracking for compute pipeline objects
  using a name string that is provided during construction.

* A compute pipeline currently must be constructed with a unique name
  and the complete SkSL program text directly. This is temporary until
  there is a more sophisticated way to represent compute programs.

Bug: b/240604572
Change-Id: I228db6887ce9c9b5feeeb69df21577c05a6ff516
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/563517
Commit-Queue: Arman Uguray <armansito@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
15 files changed