general fixes to Distribution, plus some tests
use TaskMetrics to gather all stats; lots of plumbing to get it all the way back to driver
SparkContext.addSparkListener; "std" listener in StatsReportListener