[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.
What's the motivation behind using transient here?