Fix aligment for empty structs
We have a special case to that the the size and alignment for an empty
struct is {1,0}. However that is not correct. See
https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements.
An empty structure has a base alignment equal to the size of the smallest scalar type permitted by the capabilities declared in the SPIR-V module. (e.g., for a 1 byte aligned empty struct in the StorageBuffer storage class, StorageBuffer8BitAccess or UniformAndStorageBuffer8BitAccess must be declared in the SPIR-V module.
I'm not 100% sure how DXC handle this minimum alignment, but I figured I would inialize the alignment to 1. If there are not members, then it will remain 1, and I would let the rest of the logic happen. No special case.
Fixes #2882