Removed some HashMaps from DAGScheduler by storing information in Stage.

@kayousterhout @markhamstra please take a look ... 
```scala
jobsThatUseStage.foreach { jobId => 
  handleJobCancellation(jobId, "because Stage %s was cancelled".format(stageId))
}
```
There are also opportunities throughout to switch from concatenated or formatted strings to string interpolation, which I favor.