libtime: Fix adding negative duration to Timespec.
auto merge of #16972 : ruud-v-a/rust/timespec-arithmetic, r=alexcrichton

Changing from `Timespec` to `Duration` introduced a bug for negative durations. This fixes that.