[] Make producer::DefaultPartitioner automatically dispatch message by key (based on hashCode)
[] Make consumer testable
   [] Test skipping messages
   [] Move skipping message logic directly into KafkaClient
[] Resolve all TODOs in producer.rs
[*] Create reasonable re-export directly in the kafka module
   [*] error::{Error, Result}
[x] Documentation directly in the kafka module
[*] Move to the client module
  [*] ProduceMessage
  [*] FetchPartition
  [*] TopicPartitionOffset -> CommitOffset
  [*] TopicPartition
  [*] TopicPartitionOffsetError
  [*] Entirely drop the `utils' module from public view   
[*] Rework TopicPartitionOffsetError to host the offset itself in a Result
[*] Make send_messages accept a key/value pair through ProduceMessage
[*] Rework dispatching requests to avoid &str hashing; instead use the broker_index
[*] Break-up src/client.rs into src/client/mod.rs and further submodules (it's just too big now)
[*] Make KafkaClient Sendable -- this is, make it possible to send the client from one thread to another
