Allow negative time offsets

If the system clock is adjusted via a step backwards while a test is
running, then the reported time taken can be negative because Go's
testing package uses `time.Now()` which is a wall-clock time.

Allow time recorded to be negative, without a parse error.

This change builds, and the recording sections are all ints, not
unsigned, so it should work, but no testing has been done.
Merge branch 'negative_time_allowed'