
Add a custom `time.Duration` wrapper that can be marshalled to JSON as well. Go's built-in marshaller just treats it as an `int64` and therefore the values are nanoseconds. This new wrapper keeps the JSON representation the same as the YAML marshaller (which uses the `time.Duration.String()` function). In preparation for !104406.