SPARK-2978. Transformation with MR shuffle semantics

I didn't add this to the transformations list in the docs because it's kind of obscure, but would be happy to do so if others think it would be helpful.
How about re-arrange the parameters to follow the function name? such as:

```
repartitionAndSortWithinPartition(self, numPartitions=None, partitionFunc=portable_hash, 
                                          ascending=True, keyfunc=lambda x: x)
```