[SPARK-4964] [Streaming] Exactly-once semantics for Kafka

Why was this necessary? What aspect of this PR depends on this updated version?