[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.
Sorry one more note here: I find it easier to understand the expected result from cartesian if you force both inputs to be just 1 partition (in which case the size should be (size of a + size of b):

> a.coalesce(1).cartesian(b.coalesce(1)).count()