SPARK-2035: Store call stack for stages, display it on the UI.

I'm not sure about the test -- I get a lot of unrelated failures for some reason. I'll try to sort it out. But hopefully the automation will test this for me if I send a pull request :).

I'll attach a demo HTML in [Jira](https://issues.apache.org/jira/browse/SPARK-2035).
Instead of adding `name` and `details` can we just have `callSite` be a val? We have a concept of `name` for an RDD an it's a little different than this (e.g. it can be overridden by users). At present this really is just exactly equal to a call site. My proposal makes more sense if `callSite` is not an option, which I'm also proposing (see later comments).