Fixes for atomic Primitives

Found a bunch of serious codegen issues for C11 atomics.  Ended up having to fix a bunch of type system stuff, as well as refactor a lot of the atomic classes.  Things are a lot better now, but aren't yet perfect.
Merge branch 'bug/atomic-primitives'