[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
Uncrustified it.

We might want to wait until someone defines it or add wrappers for these functions. However, they are used everywhere so this would be another PR.