BatchProducer: bug fix and cleanup

- BatchProducer should run in daemon mode and should die when the main process dies and all messages should be flushed.
Allow clients to enforce a maximum produce message size. This allows producers
to accomodate consumers that have a maximum fetch size. This is especially
important for kafka producers that batch messages.

This change introduces a new interface to the producer's send method. First,
now the method may send multiple messages to a kafka broker (this is the case
if the list of messages exceeds the maximum allowed size of kafka produce
message). Additionally, if a message is not sent in its entirety, an IOError
is now raised.

nosetests
.........
----------------------------------------------------------------------
Ran 9 tests in 0.541s

OK