Attempt better support for memory barriers
Attempt better support for memory barriers

Haven't had a chance to test some of these (they come from
documentation) so might still have a few issues.

trevnorris/fuq.h,trevnorris/fuq.h