Make AtomicPtr use *mut, instead of ~
Add AtomicOption type
Add some documentation
auto merge of #6740 : Aatch/rust/atomic-types, r=brson

This is a follow up to #6732. Makes everything a little more sound.

r? @brson