Queue implementation for programming praxis.

This one wasn't much of my idea as I had recently looked at the erlang's implementation
of the deque(double ended queue) module and did some analysis of the amortized O(1) complexity
of this implementation for deque usage. I think it should be the same for normal queue usage