Spark Integration: Collect System Metrics from Spark Job

Build running here: https://builds.cask.co/browse/CDAP-DUT176-5

@anew : Please review. Thanks. 
If it is null, then getMetrics() will return null. Shouldn't it rather return a no-op implementation of Metrics? 
And getMetricCollector() will throw an NPE when the MetricsReporter calls it? 
So, if it is null, then you should not start a metrics sink (and not generate the properties file for it).