Validate flatbuffers before printing in aos_dump, log_cat, and simulated_event_loop

We had a corrupted flatbuffer being logged, and the error was very poor
when it was being printed.  Let's try to catch this a lot earlier.

Fix 1: log_cat should validate before printing.  That'll prevent us
from wasting time debugging why it is crashing and point the finger a
lot better.

Fix 2: aos_dump should do the same.  That'll save us from nasty crashes
there too and focus attention a lot better.

Fix 3: SimulatedEventLoop sender Send should also validate in debug
mode.  This will avoid too big a performance hit in the fast path, but
will catch corrupted flatbuffers in any simulations we do, or any log
replay that gets done with debug turned on.

This caught a couple of places where we were missing schemas, so add
those in too.

Change-Id: I1873ddd592d33fe4e64210a2e08aa9b937d61ab8
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
diff --git a/aos/configuration.h b/aos/configuration.h
index c6d25df..c22a1cf 100644
--- a/aos/configuration.h
+++ b/aos/configuration.h
@@ -40,6 +40,12 @@
 FlatbufferDetachedBuffer<Configuration> MergeWithConfig(
     const Configuration *config, const Flatbuffer<Configuration> &addition);
 
+// Adds the list of schemas to the provide config json.  This should mostly be
+// used for testing and in conjunction with MergeWithConfig.
+FlatbufferDetachedBuffer<aos::Configuration> AddSchema(
+    std::string_view json,
+    const std::vector<FlatbufferVector<reflection::Schema>> &schemas);
+
 // Returns the resolved Channel for a name, type, and application name. Returns
 // nullptr if none is found.
 //