Multi-producer, multi-consumer lock-free queue implementation
"Inspirational" sources:
- http://www.drdobbs.com/parallel/writing-a-generalized-concurrent-queue/211601363
- http://www.stdthread.co.uk/doc/headers/atomic/atomic.html
- https://baptiste-wicht.com/posts/2012/07/c11-concurrency-tutorial-part-4-atomic-type.html
- https://www.quora.com/How-does-std-atomic-work-in-C++11
- https://stackoverflow.com/questions/31978324/what-exactly-is-stdatomic
- https://solarianprogrammer.com/2011/12/16/cpp-11-thread-tutorial/
- https://solarianprogrammer.com/2012/02/27/cpp-11-thread-tutorial-part-2/
- https://www.classes.cs.uchicago.edu/archive/2013/spring/12300-1/labs/lab6/