[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.
@sryza and I discussed this offline and Sandy suggested registering a callback with task metrics to get the bytes read, as in his old commit: https://github.com/sryza/spark/commit/9f1d77cc0eb0f5206ac52621fb85c99cae56f945

which seems to be the least-ugly solution here, given that Hadoop's methods all provide the total bytes read across all splits read in the thread.