Remove kofta_producer_batcher_sup - it's unused
Use a nonblocking poolboy pattern in kofta_connection
Cleanly crash producer_batcher on connection failure

We don't want to attempt a retry here, because timeout logic gets complicated
and it's better to ensure exactly-once delivery.
Be more explicit about request timeouts in producer_batcher

This is an effort to ensure sane semantics in the case of failures
Handle connection request errors in kofta:fetch/3
Handle lists:keyfind error when bad partition is specified
Rework message_set decoding to prevent badmatch on truncation

The previous implementation required incoming message sets to be
well-formed. Any message set truncated halfway through would cause
the various binary parses to badmatch.