[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.
I'm not sure if any RDDs actually do this, but I can imagine a case where 2 HadoopRDDs get created, at which point inputMetrics.bytesRead will be 0 (so both will have bytesReadAtStart = 0).  As getNext() was called, both would use bytesReadAtStart = 0, so the two counts would clobber each other.  Can we use += instead here, and just always increment with the increased number of bytes read?  That seems easier to reason about / less potential for future bugginess.