[SPARK-1981] Add AWS Kinesis streaming support

Hey, so this is probably not properly documented, but the receivers can be started and stopped multiple time (forexample, when receiver.restart(<Error>) is called). So creating all these vals once using lazy is not the right way, and then calling run/shutdown multiple times is not a good idea. Instead they should be created from scratch every time onStart() is called. 

See the pattern followed by [FlumeReceiver](https://github.com/apache/spark/blob/master/external/flume/src/main/scala/org/apache/spark/streaming/flume/FlumeInputDStream.scala#L139).