Zip with Backpressure Support

This supports both upstream and downstream backpressure.
There is at most 1 consumer and 1 producer thread, why the SPMC queue?