Refactor metric reducers

Try to remove duplicate code for metrics that create single value.
I only make this pull request so you know where this is going.
Does this not need to implement Streamable since it is used in the ReducerFactory which is streamed back to the coordinating node?