glsl/spirv: fix array type sizing
gl spirv environments allow explicit strides on arrays which don't match the natural type alignments of the array members, e.g., vec2[3] can have any arbitrary stride between the vec2 array members, and attempting to assert that this is equal to (length * base_alignment) can never work reliably
the glsl spec also explicitly states that ssbos in a spirv environment use std430 by default, so enforce that