Queue

Add queue tests and implementation
I stared at this for a while trying to figure out why back was an empty node, then I finally got it. I would call this a little inelegant. I don't think this is a bug, exactly, but what happens when you enqueue some stuff, and dequeue it all off the list?

If at that point you look at back.value, it's still the value most recently taken off the queue. The next time you enqueue, this node is eventually garbage collected, but this is all happening implicitly rather than Pythonically.