[graphite] Allow backends to append information to graphite sampler keys

* Add virtual Caps::makeSamplerKey(...) method that can be overridden by backends to append additional backend-specific information, such as YCbCr sampler keys in the case of Vulkan.

* Alter ResourceProvider::createSampler(...) to take in a const ref to SamplerDesc instead of each of its members. Backends can then decide what of the SamplerDesc info needs to be actually passed in to backend-specific sampler creation methods.

* This sets up for future CLs to enable Dawn, Vulkan to add YCbCr information to sampler keys.

Change-Id: I994f7c9d7c9b7eb902d38ccd2cb797cac50882e3
Bug: b/311392779
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/825196
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Nicolette Prevost <nicolettep@google.com>
15 files changed