Leaky batch bucket

Reduce GC churn by using a leaky bucket of batches and channels of pointers.

Parallel delivery of messages. 

There is no upper bounds of the possible number of deliveries in-flight atm.
Not sure if that will be an issue or not.
There is a hard limit on the number of pending (no delivery setup) though.

/cc @bgentry 

I'll probably merge this in the morning.