Adds a queue container

Adds a queue/FIFO container, considering the feedback given in #2361.
There doesn't seem to be a need to initialize a local variable just to test two conditions. Why not just write it this way:
````
if (q.length == this.length && q.capacity == this.capacity)
{
    ....
}
else
    return false;
````