Lockless multiproducer

CC @sirupsen @wvanbergen @burke @fw42 @graemej

Simple non-batching synchronous tests are working. Needs batching tests, but as Burke mentioned yesterday they are very messy with the current framework.