Integrating Kafka partitioning scheme with Voldemort cluster.xml

- Rename KafkaConsumerDefinition to KafkaTopicDefinition as it will be used by both client and server
- Read from cluster.xml to initialize the VeniceStore
- Add consistent partition, serializing classes for Kafka to use
- Adding KafkaRoutedStore object for producing objects into Kafka
Are you sure that doing key.toString is safe?

If the key is a String, then toString will return its content, but a lot of Object descendants return useless data on toString. It'd be useful to consider what is likely to be passed into the incoming key param.