[WIP] [SPARK-2377] Python API for Streaming

This patch bring Python API for Streaming, WIP.

TODO:
updateStateByKey()
windowXXX()

This patch is based on work from @giwa
Another reason streaming/time.py is not good is that time is used in python/pyspark/streaming/tests.py

```
            # StreamingContext.awaitTermination is not used to wait because
            # if py4j server is called every 50 milliseconds, it gets an error.
            time.sleep(0.05)
            # Check if the output is the same length of expected output.
            if len(expected) == len(result):
```