String metric and other tests

- add a StringMetric. One use is formatted variable length lists of things that can be parsed later, such as per-node values or per-iteration/stage values. An alternative is to output them as "key: value", but this allows them to use the Metrics infrastructure.
- also added tests for `merge()` for all metric types