Ah, I didn't know that a list would be as fast for appending and popping.
I knew that lists were optimized for .append() and .pop(), but I didn't
know that a list would be just as fast as a deque if it was just used as a
stack.
And I'll be happy to write unit tests if it can be pointed out to me how
exactly they can be written. Should it just test to make sure pickling a
deeply nested object hierarchy can be pickled without raising a
RuntimeError? I tried to make this as transparent as possible of a change.