[SPARK-1630] Turn Null of Java/Scala into None of Python

During serializing PythonRDD, it will cause an NPE if there null in it. This patch will handle it as None of Python.

This PR is based on #554, thanks to @kalpit. 
Again, sorry, I don't think this improves stability:
1) Users are not supposed to call private APIs. In fact even *Scala* code can't call PythonRDD because that is private[spark] -- it's just an artifact of the way Scala implements package-private that the class becomes public in Java. If you'd like support for UDFs we need to add that as a separate, top-level feature.
2) This change would mask bugs in the current way we write Python converters. Our current converters only pass in Strings and arrays of bytes, which shouldn't be null. (For datasets that contain null they convert it to a picked form of None already). This means that if someone introduces a bug in one of our existing code paths, that bug will be harder to fix because instead of being an NPE, it will be some weird value coming out in Python.