Some improvements in SortShuffleRead

1. Use BlockObjectWriter to write spilled data, statistics for memory spilled size and disk spilled size.
2. Manged the request shuffle block and its size locally to fix bugs in incorrectness of size uncompression.
3. Some small changes.

@sryza , would you mind taking a look at this. I've fixed the previous issue and made some other changes. Thanks a lot.
Yes, this is duplicated in two places, I'm not sure where is suitable to add this function, do you have any suggestion?