SPARK-2565. Update ShuffleReadMetrics as blocks are fetched

Also I think this should be called `updateShuffleReadMetrics` or something since it mutates this object in place. We have functions named `mergeX` in several other places in the spark code e.g. `mergeCombiners`, they all return no objects rather than mutating an existing one.