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.
I changed that now after your comment here https://github.com/elasticsearch/elasticsearch/pull/8654#issuecomment-64902881 . InternalMetric does not implement MultiValue anymore. 

Metric results handle their own streaming in readFrom() which looks like this for stats: https://github.com/elasticsearch/elasticsearch/pull/8654/files#diff-5e523565b3ec4a1aaab3a748fe16af13R49 
Do you still think should instead stream string/value pairs instead?