Use slow 64-bit cmpxchg for ARM and PowerPC.

GCC doesn't provide a 64-bit __sync_val_compare_and_swap intrinsic
for these architectures.
Add an extension point in atomic.c.
Don't use lock-based 64-bit CAS for PowerPC 64.

The previous check was too general as __powerpc__ is also
defined for the 64-bit version of the architecture.
Use lock-based 64-bit CAS on MIPS 32.

GCC doesn't provide __sync_val_compare_and_swap here, but does provide
it for the 64-bit variant of the architecture.