nir: Add alignments to deref chains
This is something of a counter-proposal to !5900 (closed) as a different way of handling alignments. The idea here is to add them to deref chains by adding alignment parameters to cast derefs. We can also get an alignment from the variable if we can search back that far. Getting this working for Vulkan, GL, and CL all at the same time has been a bit of a difficult dance but I think I've got it now and I'm pretty happy with the result.