Update the constraints to enforce the worst case slew

When we have a period with no observations in a log file, we used to
assume that time slewed at a rate that connected the observations with a
line.  For long enough periods of time, this ends up being pretty wrong.

We need to actually enforce what our guarentees are.  That the solution
is bounded by the worst case slew, which is a V connecting the two
samples using the max slew rate as the slope.  Anything crossing that V
is wrong by construction, and anything inside it is actually valid,
though it might be a bit weird.

Change-Id: I6ee1476ae7c218a15239e818393c7df43d8ba2dc
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/aos/events/logging/boot_timestamp.h b/aos/events/logging/boot_timestamp.h
index e818fb9..0d68045 100644
--- a/aos/events/logging/boot_timestamp.h
+++ b/aos/events/logging/boot_timestamp.h
@@ -90,6 +90,11 @@
   BootTimestamp operator+(monotonic_clock::duration d) const {
     return {boot, time + d};
   }
+
+  BootTimestamp operator+=(monotonic_clock::duration d) {
+    time += d;
+    return *this;
+  }
   BootTimestamp operator-(monotonic_clock::duration d) const {
     return {boot, time - d};
   }