Implement ConstructorArray in RP codegen.

These use the exact same logic as other compound constructors; they
simply push every element. This allows six more tests to compile.
Some of these tests are not written to be executed
(ForLoopMultipleInit) and others use the `testArray` uniform, which
the current SkRP unit test harness doesn't support (StructComparison,
ArrayComparison) but will work once we switch to using real
SkRuntimeEffects.

ArrayFolding wasn't in our list of runnable tests before, for some
reason. It's possible that ArrayFolding tickles a known Nvidia bug in
GLSL where side-effecting expressions can be accidentally eliminated,
but RTX3060 and P400 passed on the CQ when I tested them.

Change-Id: Ie471497912f86d8c108aa1d1f59ced4addb12de2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/648456
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
8 files changed