[SPARK-2871] [PySpark] Add missing API

Try to bring all Java/Scala API to PySpark.
In addition to these tests, port the cases from DoubleRDDSuite.scala into tests.py. Histogram had some tricky edge-cases in Scala (e.g. NaNs, values outside the bucket ranges) so we should make sure we catch them here. Sometimes floating-point math is also different in Python than in Scala.