This PR fixes validity of atomic instructions and improves type inference. More tests are able now to be accepted by `spirv-val`.
Differential Revision: https://reviews.llvm.org/D133265