Changed function definitions in custom metric service to allow for more complex serialization that Strings couldn't handle.  Changed NormalDistFunction to return a summary statistics object to allow for data to be returned from the metric