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).
I'd rather make this a required constructor parameter. The case where you use the optionality here is actually one we need to address. We need to deal with this new field in `JsonProtocol.scala` where we define a serializer for `StageInfo`'s (i.e. we should write and read-back the description). There, we should make sure we handle the case where you are reading an older serialized `StageInfo` that doesn't have a `details` field. This functionality is required for Spark's history UI