Reuse container.Queue capacity when calling pop_front()
Currently, the Queue will never reuse it's full capacity if you call `pop_front`, even if you empty it before pushing more items.
With this change, if you empty the Queue with `pop_front`, then the offset will be set back to the start of the underlying array when you pop the last item.
Future pushes will then reuse the already-allocated--but now empty--space.