Reimplementing batching as 4 goroutines

Having one go routine to collect messages and different ones for sending
messages resulted in a high timer overhead. This commit creates four
independent goroutines each collecting and sending their own message
types. This resulted in 40% less timer overhead.

Change-Id: I658340593f387fc9624cbb73a09e7bd1df1a61ad
Recruite bees in parallel

Change-Id: I421aaa03d9c18130b525c18ae6951c395d7004e6
Export AppCellKey

Change-Id: I116e55de94f8560d66070fdbda8473f8cb891c24