[wgsl] Apply array polyfills in synthetic sksl tests correctly

This refactors `writeUniformsAndBuffers`'s body that handled interface
blocks into a helper `writeInterfaceBlock` (logic unchanged) so that it
could be called by `writeNonBlockUniformsForTests` in place of it
generating bespoke WGSL that was 90% the same as the default generated
interface WGSL.

This allows the synthetic global uniform block to participate in the
array polyfills and matrix polyfills correctly, although there was a
minor impact on generated test wgsl where @group and @binding changed
order.

The array/matrix polyfill types also had to be updated to use @align(16)
instead of @size(16). The latter adjusts the size but does not propagate
the stricter alignment into any wrapping type.

Bug: b/465408252
Change-Id: I41077f77ff8bd752f20c8e0f7603bfd4023a45cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1121416
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Thomas Smith <thomsmit@google.com>
294 files changed