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

I'm slightly confused about how Kafka messages are assigned to batches in this stream. From what I can tell, I give the stream a start offset, and then the first batch will include everything from that start offset until "now" (i.e. when the program is running) and subsequent batches will include any new messages delivered in that window.

Is that right? If so I find it a bit confusing to call it `DeterministicKafkaInputDStream`, because the assignment of Kafka messages to batches is not actually deterministic (i.e. I could run the same program twice and the batches would be different each time). Maybe I missed something?