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
logback is test dependencies. We shouldn't enforce what slf4j impl being used by user. Scope is defined in the parent pom (like the junit one is also test scope).