[SPARK-2871] [PySpark] Add missing API

Try to bring all Java/Scala API to PySpark.
This needs a docstring.  Also, the Scala equivalent of this clones the SparkConf because it cannot be changed at runtime.  We might want to do the same thing here (to guard against misuse); I'm not sure how clone() interacts with Py4J objects; do we need to implement a custom clone method for objects with Py4J objects as fields that calls those objects' JVM clone methods?