Implement WGSL vector-component lvalues.

This restores the remaining tests that were broken when LValues were
first added. Single-component vector swizzles are directly storable
in WGSL, so we don't need to apply any tricks here; the only
significant difference between a VectorComponentLValue and a
PointerLValue is the absence of a working `getPointer`.

Change-Id: I880e90f9406ee33db8794ef3b43c9fac1e6b5328
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/706676
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
21 files changed