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

You can have multiple receivers per topic, and the closest receiver-based analogue to my approach would be 1 receiver per partition, hence why I set it up that way.  The semantics are documented in the scaladoc for the class.

If we want people to be able to configure a very granular per-topic-per-partition maximum per batch we can, but it should probably be done as an (optional) argument rather than a configuration property.