Update the atomics lecture

* Add incformation about the memory model
* Define the std::atomic template
* Provide an example checking for lock-free status of an atomic