Right, if we just directly remove the stage as soon as it finishes, then we don't need to keep track of the stages associated with ShuffleDependency's and RDD's. This is because by the time the dependency or RDD goes out of scope, the stage would have already been removed.

This gets rid of the BoundedHashMap in `ShuffleMapTask` and `ResultTask`.