[SPARK-611] [WIP] Display executor thread dumps in web UI

This patch allows executor thread dumps to be viewed in the Spark web UI.

Thread dumps obtained from Thread.getAllStackTraces() are piggybacked
on the periodic executor -> driver heartbeats.  JobProgressListener
stores these heartbeats for display in the UI.

One current limitation is that the driver thread dumps are not viewable
except when running in local mode.

This is [WIP] pending a few issues which I'll comment on inline.