[SPARK-2299] Consolidate various stageIdTo* hash maps in JobProgressListener

This should reduce memory usage for the web ui as well as slightly increase its speed in draining the UI event queue. 

@andrewor14
For tasks that have already finished, doesn't `activeTime` already include `executorRunTime`? If so, aren't we double counting for those tasks? It seems to me that what it was before was plain wrong, though maybe I'm misunderstanding something.