broadcom/compiler: support varyings with struct types
This adds support for using structs as outputs from vertex shaders and inputs to fragment shaders.
This is only needed for SPIR-V shaders as the GLSL compiler deals with structs itself before getting to NIR.