SPARK-2134: Report metrics before application finishes

I thought it is best to keep it here since the metricsystem may be dependent on other components. This way the we can separate out the two pieces of code and avoid any dependency issues. So this extra call just becomes/behaves like another scheduled call from the timer of the reporter, had the spark component not been stopped.