[SPARK-4092] [CORE] Fix InputMetrics for coalesce'd Rdds

When calculating the input metrics there was an assumption that one task only reads from one block - this is not true for some operations including coalesce. This patch simply increments the task's input metrics if previous ones existed of the same read method.

A limitation to this patch is that if a task reads from two different blocks of different read methods, one will override the other.
The issue is that the Hadoop APIs we're relying on don't really allow bytesReadFn to return incremental bytes read.  All they do is report on the total bytes read by the thread.  If reads on behalf of different RDDs are interleaved on the same thread, the only way I can think of to determine the bytes read by each RDD is to measure the bytes read so far before and after every read operation.  Which is prohibitively expensive.