Convert aos over to flatbuffers

Everything builds, and all the tests pass.  I suspect that some entries
are missing from the config files, but those will be found pretty
quickly on startup.

There is no logging or live introspection of queue messages.

Change-Id: I496ee01ed68f202c7851bed7e8786cee30df29f5
diff --git a/aos/time/BUILD b/aos/time/BUILD
index e08ef7b..619642e 100644
--- a/aos/time/BUILD
+++ b/aos/time/BUILD
@@ -11,7 +11,6 @@
     visibility = ["//visibility:public"],
     deps = [
         "//aos:macros",
-        "//aos/ipc_lib:shared_mem",
         "//aos/mutex",
         "//aos/type_traits",
         "@com_github_google_glog//:glog",
diff --git a/aos/time/time.cc b/aos/time/time.cc
index 9736009..6c2d254 100644
--- a/aos/time/time.cc
+++ b/aos/time/time.cc
@@ -8,10 +8,6 @@
 
 #ifdef __linux__
 
-// We only use global_core from here, which is weak, so we don't really have a
-// dependency on it.
-#include "aos/ipc_lib/shared_mem.h"
-
 #include "aos/mutex/mutex.h"
 #include "glog/logging.h"
 
@@ -103,15 +99,6 @@
   SetMockTime(monotonic_clock::now() + amount);
 }
 
-void OffsetToNow(monotonic_clock::time_point now) {
-  CHECK_NOTNULL(&global_core);
-  CHECK_NOTNULL(global_core);
-  CHECK_NOTNULL(global_core->mem_struct);
-  const auto offset = now - monotonic_clock::now();
-  global_core->mem_struct->time_offset =
-      chrono::duration_cast<chrono::nanoseconds>(offset).count();
-}
-
 #endif  // __linux__
 
 struct timespec to_timespec(
@@ -150,14 +137,8 @@
       << ": clock_gettime(" << static_cast<uintmax_t>(CLOCK_MONOTONIC) << ", "
       << &current_time << ") failed";
 
-  const chrono::nanoseconds offset =
-      (&global_core == nullptr || global_core == nullptr ||
-       global_core->mem_struct == nullptr)
-          ? chrono::nanoseconds(0)
-          : chrono::nanoseconds(global_core->mem_struct->time_offset);
-
   return time_point(::std::chrono::seconds(current_time.tv_sec) +
-                    ::std::chrono::nanoseconds(current_time.tv_nsec)) + offset;
+                    ::std::chrono::nanoseconds(current_time.tv_nsec));
 
 #else  // __linux__
 
diff --git a/aos/time/time.h b/aos/time/time.h
index 469534f..881f0f1 100644
--- a/aos/time/time.h
+++ b/aos/time/time.h
@@ -82,14 +82,6 @@
 // Disables mocking time.
 void DisableMockTime();
 
-// Sets the global offset for all times so monotonic_clock::now() will return
-// now.
-// There is no synchronization here, so this is only safe when only a single
-// task is running.
-// This is only allowed when the shared memory core infrastructure has been
-// initialized in this process.
-void OffsetToNow(const monotonic_clock::time_point now);
-
 // Construct a time representing the period of hertz.
 constexpr ::std::chrono::nanoseconds FromRate(int hertz) {
   return ::std::chrono::duration_cast<::std::chrono::nanoseconds>(