Save remote timestamps in timestamp log file headers

We have the earliest time a message made it across the network in each
log file.  Previously, this was only done for the main data files, so
we'd only get timestamps when our message_bridge_client is connected to
the remote.  We see some logs where we never connect, so we never get
those timestamps.  There is still enough information in the log files to
sort if we fix that.

There are 3 parts to this.
  1) Clarify that we really mean source node for the timestamps, not
     logger node.
  2) Put the timestamps in the log file header
  3) Update the sorting code.

This exposes a bug in the log reader where it can't handle a node
without a start time.  A follow-up commit will fix that, but that can
happen while this is being reviewed.

Change-Id: Iff898dc30ec0fb54d670ea21412d8ad35ab80f4c
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
diff --git a/aos/events/logging/log_namer.h b/aos/events/logging/log_namer.h
index 00e1856..c3fc5d4 100644
--- a/aos/events/logging/log_namer.h
+++ b/aos/events/logging/log_namer.h
@@ -59,6 +59,11 @@
                     const UUID &node_boot_uuid,
                     aos::monotonic_clock::time_point now);
 
+  // Updates the current boot for the source node.  This is useful when you want
+  // to queue a message that may trigger a reboot rotation, but then need to
+  // update the remote timestamps.
+  void UpdateBoot(const UUID &source_node_boot_uuid);
+
   // Returns the filename of the writer.
   std::string_view filename() const {
     return writer ? writer->filename() : "(closed)";
@@ -97,7 +102,7 @@
 
  private:
   // Signals that a node has rebooted.
-  void Reboot();
+  void Reboot(const UUID &source_node_boot_uuid);
 
   void QueueHeader(
       aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> &&header);