[graphite] Remove size tracking in PaintParamsKeyBuilder

A PaintParamsKey is now a read-only view over an `SkSpan<const int32_t>`. The `fOriginatingBuilder` is moved off of PaintParamsKey and
the functionality (locking as a view) is now in an RAII type called
`AutoLockBuilderAsKey`

PaintParamsKeyBuilder in release builds amounts to just calls to
TArray::push_back, but maintains stack validation in debug builds, so
normal memory access should be much more linear.

With PaintParamsKey being just a span, ShaderCodeDictionary can also
be consolidated to remove extra indirections in its unique ID tracking.

Change-Id: I2bd5d9ee235463e75c64734e22f6676f4ef71bec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/667957
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
9 files changed