Low-Level Atomic Operations

Minor suggestion: rename dispose to deinitialize, to match UnsafePointer.

Although…what's the point of dispose at all? You can't put anything non-trivial in an atomic representation.