Ordering messages per client

Adding HashPartitioner. Using key as clientid (can be hostname), so that, messages per client remain ordered across several partitions of a topic.