Fix potential memory leak.  Thanks breischl
Fix ReadByteStream to treat -1 as null
Kafka treats the -1 value as null when using integer prefixed
byte arrays.  From breischl
Breaking change: PartitionSelector now takes byte[]
Using the MD5 and byte[] in partition selector to perform selection
Change message object to use byte[] instead of string