it would be better not to have other parts of Spark posting events to the DAGScheduler. Maybe we could do the following:

1. Move the listener bus to the SparkContext (approved by @kayousterhout)
2. Pass a SparkContext to the DAGScheduler and access it through that. Then we could remove the Spark env and other arguments currently passed in.