Allow adding tabs to SparkUI dynamically + add example

An example of how this is done is in org.apache.spark.ui.FooTab. Run
it through bin/spark-class to see what it looks like (which should
more or less match your expectations...).