[SPARK-2377] Python API for Streaming

This patch brings Python API for Streaming.

This patch is based on work from @giwa
Same logic as I mentioned earlier. If it is easy undo the refactoring and be able to run tests, lets try to do that.