Stop stripping the size prefix off

This turns out to be super dangerous to do.  A flatbuffer is aligned
assuming that the size is either there or not there.  By removing it,
you break alignment.

This necesitates having 2 subclasses of Flatbuffer.  A SizePrefixed
version and a non size prefixed version.  That lets us distinguish for
methods which care.

Once all that's done, deal with the fallout through the code base,
including logfile_utils and the chaos that causes rippling out.

Change-Id: I91b7be355279a1c19e5c956c33359df01a17eacf
diff --git a/aos/events/logging/log_namer.cc b/aos/events/logging/log_namer.cc
index 411e666..ec60143 100644
--- a/aos/events/logging/log_namer.cc
+++ b/aos/events/logging/log_namer.cc
@@ -32,7 +32,7 @@
     const Node *node) {
   CHECK_EQ(node, this->node());
   UpdateHeader(header, uuid_, part_number_);
-  data_writer_->QueueSpan(header->full_span());
+  data_writer_->QueueSpan(header->span());
 }
 
 DetachedBufferWriter *LocalLogNamer::MakeWriter(const Channel *channel) {
@@ -48,7 +48,7 @@
   ++part_number_;
   *data_writer_ = std::move(*OpenDataWriter());
   UpdateHeader(header, uuid_, part_number_);
-  data_writer_->QueueSpan(header->full_span());
+  data_writer_->QueueSpan(header->span());
 }
 
 DetachedBufferWriter *LocalLogNamer::MakeTimestampWriter(
@@ -88,14 +88,14 @@
       OpenDataWriter();
     }
     UpdateHeader(header, data_writer_.uuid, data_writer_.part_number);
-    data_writer_.writer->QueueSpan(header->full_span());
+    data_writer_.writer->QueueSpan(header->span());
   } else {
     for (std::pair<const Channel *const, DataWriter> &data_writer :
          data_writers_) {
       if (node == data_writer.second.node) {
         UpdateHeader(header, data_writer.second.uuid,
                      data_writer.second.part_number);
-        data_writer.second.writer->QueueSpan(header->full_span());
+        data_writer.second.writer->QueueSpan(header->span());
       }
     }
   }
@@ -110,7 +110,7 @@
     }
     OpenDataWriter();
     UpdateHeader(header, data_writer_.uuid, data_writer_.part_number);
-    data_writer_.writer->QueueSpan(header->full_span());
+    data_writer_.writer->QueueSpan(header->span());
   } else {
     for (std::pair<const Channel *const, DataWriter> &data_writer :
          data_writers_) {
@@ -119,7 +119,7 @@
         data_writer.second.rotate(data_writer.first, &data_writer.second);
         UpdateHeader(header, data_writer.second.uuid,
                      data_writer.second.part_number);
-        data_writer.second.writer->QueueSpan(header->full_span());
+        data_writer.second.writer->QueueSpan(header->span());
       }
     }
   }