Moved multi-producer details out to separate file, focusing ringbuffer on single-producer impl