SPARK-2566. Update ShuffleWriteMetrics incrementally

I haven't tested this out on a cluster yet, but wanted to make sure the approach (passing ShuffleWriteMetrics down to DiskBlockObjectWriter) was ok
It's a bit strange that the same metrics object is re-used here. Can you just create a new ShuffleWriteMetrics every time you create a writer? That is more the model I was thinking of.