Support gcc47 atomics

yep. Exactly what it says.
I really don't know...maybe you could imagine the code doing a cli and some out-of-band locking inside the operator= for the non-POD?

Without this, one of the unittests breaks.  I was actually thinking of using placement new instead. Thoughts?