First complete version of Kafka flowlet

Quick links:

README: https://github.com/caskdata/cdap-packs/blob/feature/kafka/cdap-kafka-pack/cdap-kafka-flow/README.md

BUILD: https://github.com/caskdata/cdap-packs/blob/feature/kafka/cdap-kafka-pack/cdap-kafka-flow/BUILD.md

Please don't scared by the number of lines changed. Only 2800 are in Java class (with quite an amount of javadoc inside). There are only four important/complicated classes:

1. `KafkaConsumerFlowlet` - Contains generic logic on Flowlet lifecycle and process method
1. `Kafka08ConsumerFlowlet` - Contains message fetching logic for Kafka 0.8.x
1. `Kafka07ConsumerFlowlet` - Contains message fetching logic for Kafka 0.7.x. Due to Kafka 0.7.x less good design, the code looks more complicated than the 0.8.x one.
1. `KafkaBrokerCache` - A ZK cache to gather Kafka broker information for 0.7.x. For Kafka 0.8.x, we use the one in Twill
TCP socket timeout. A TCP attribute.