[graphite][vello] Use ScratchBuffers for all bindings

VelloRenderer now allocates ScratchBuffer objects for its GPU-private
buffer bindings. All of these buffers get reused across DispatchGroups,
as well as within an individual vello render. This helps reduce the
overall memory footprint, especially when multiple compute atlas page
renders are required due to a flush to Recording.

Each buffer binding uses an entire ScratchBuffer. This satisfies the
mixed access-mode restrictions on sub-buffer usage scopes (described
in b/299979165). As a result, we no longer need to convert read-only
buffer bindings to read-write while preprocessing the shaders and can
use read-only bindings throughout.

Bug: b/299979165
Change-Id: Ice75e59ee985833bc3074d58ce920cd0a2e30f3b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/828478
Commit-Queue: Arman Uguray <armansito@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
4 files changed