Fixing SPARK-602: PythonPartitioner

Currently PythonPartitioner determines partition ID by hashing a byte-array
representation of PySpark's key. This PR lets PythonPartitioner use the
actual partition ID, which is required e.g. for sorting via PySpark.