[SPARK-2377] Python API for Streaming

This patch brings Python API for Streaming.

This patch is based on work from @giwa
Why `private[spark]` and not `private[python]`?