Adds a queue container

Adds a queue/FIFO container, considering the feedback given in #2361.
Please place those `const` on the right hand side of the function signature.