Part of [SPARK-2456] Removed some HashMaps from DAGScheduler by storing information in Stage.

This is part of the scheduler cleanup/refactoring effort to make the scheduler code easier to maintain. 

@kayousterhout @markhamstra please take a look ... 
What?  How does `stageIdToJobIds.filterKeys(stageId => registeredStages.get.contains(stageId)).foreach {` do more hash lookups than does `stageIdToStage.filter(s => registeredStages.get.contains(s._1)).foreach {`?  Looks the same to me: https://github.com/scala/scala/blob/v2.10.4/src/library/scala/collection/MapLike.scala#L230