Use config found in SortLogs instead of random log files

This both gives us a single Configuration object to use for all
matching configuration, and also gives us an abstraction to use when we
move the config out of the top of each log file and into a separate
file.

While we are here, expose name from the log file header as well.  This
removes the last user of the raw LogFileHeader from logger.

Change-Id: I0c99d64f9a7222e17100650cdf4b018ae224887a
diff --git a/aos/events/logging/logger.h b/aos/events/logging/logger.h
index 3bf3fa8..56b99e8 100644
--- a/aos/events/logging/logger.h
+++ b/aos/events/logging/logger.h
@@ -448,7 +448,7 @@
 
   template <typename T>
   bool HasChannel(std::string_view name, const Node *node = nullptr) {
-    return configuration::GetChannel(log_file_header()->configuration(), name,
+    return configuration::GetChannel(logged_configuration(), name,
                                      T::GetFullyQualifiedName(), "", node,
                                      true) != nullptr;
   }
@@ -457,13 +457,7 @@
     return event_loop_factory_;
   }
 
-  const LogFileHeader *log_file_header() const {
-    return &log_file_header_.message();
-  }
-
-  std::string_view name() const {
-    return log_file_header()->name()->string_view();
-  }
+  std::string_view name() const { return log_files_[0].name; }
 
   // Set whether to exit the SimulatedEventLoopFactory when we finish reading
   // the logfile.
@@ -490,10 +484,6 @@
 
   const std::vector<LogFile> log_files_;
 
-  // This is *a* log file header used to provide the logged config.  The rest of
-  // the header is likely distracting.
-  SizePrefixedFlatbufferVector<LogFileHeader> log_file_header_;
-
   // State per node.
   class State {
    public: