[FEATURE] added a concurrency-safe queue 

Features:
 - the queue can be fixed-size or grow dynamically
 - it supports multiple readers and writers
 - it supports C++11 move so that (in theory) elements w/o copy c'tors can be enqueued, e.g. resources like threads, semaphores
It's not wrong and all atomic operations uses volatile refs as well, but it is not really required. So I'll remove it.