Added queue data structure

Implemented a bounded and unbounded queue data structure. Used multimethod to dispatch to two different push methods - one with size validation and one without. This was done instead of an if statement in the code, which would have made the push method more difficult to read.