queue: add a double-ended queue implementation.