Readability improvements to SortShuffleReader

Some of the changes include:
* Changed ioSortFactor to maxMergeWidth to clarify what it means.
* Changed "partition" to "block" to avoid confusion with Spark's more typical use of the word partition.
* Added header documentation.
* Rearranged and documented the main merge loop.
I've no specific counterexamples currently, just not sure about it. 

Besides, I think setting  `maxMergeWidth` to 10 by default might be a little smaller, previously for MR equal one `io.sort.factor` often choose to be 100 if I remembered correctly.