Harness funcs execute the given func and record metrics concerning the execution. The error
returned from the harness is the same error returned from the execution of the func param.
NewHarness generates and returns an execution harness that records metrics. `counts` and `errors`
are required; `timed` and `clock` must either both be nil, or both be non-nil.