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/json_to_flatbuffer.fbs b/aos/json_to_flatbuffer.fbs
index 2e90a53..8942cc8 100644
--- a/aos/json_to_flatbuffer.fbs
+++ b/aos/json_to_flatbuffer.fbs
@@ -1,5 +1,26 @@
 namespace aos.testing;
 
+enum BaseType : byte {
+    None,
+    UType,
+    Bool,
+    Byte,
+    UByte,
+    Short,
+    UShort,
+    Int,
+    UInt,
+    Long,
+    ULong,
+    Float,
+    Double,
+    String,
+    Vector,
+    Obj,     // Used for tables & structs.
+    Union,
+    Array
+}
+
 table Location {
   name:string;
   type:string;
@@ -18,6 +39,14 @@
   maps:[Map];
 }
 
+table VectorOfStrings {
+  str:[string];
+}
+
+table VectorOfVectorOfString {
+  v:[VectorOfStrings];
+}
+
 table Configuration {
   locations:[Location] (id: 0);
   maps:[Map] (id: 1);
@@ -48,32 +77,37 @@
 
   foo_string:string (id: 15);
 
+  foo_enum:BaseType (id: 16);
+  foo_enum_default:BaseType = None (id: 17);
+
   // Test vectors now.
-  vector_foo_byte:[byte] (id: 16);
-  vector_foo_ubyte:[ubyte] (id: 17);
-  vector_foo_bool:[bool] (id: 18);
+  vector_foo_byte:[byte] (id: 18);
+  vector_foo_ubyte:[ubyte] (id: 19);
+  vector_foo_bool:[bool] (id: 20);
 
-  vector_foo_short:[short] (id: 19);
-  vector_foo_ushort:[ushort] (id: 20);
+  vector_foo_short:[short] (id: 21);
+  vector_foo_ushort:[ushort] (id: 22);
 
-  vector_foo_int:[int] (id: 21);
-  vector_foo_uint:[uint] (id: 22);
+  vector_foo_int:[int] (id: 23);
+  vector_foo_uint:[uint] (id: 24);
 
-  vector_foo_long:[long] (id: 23);
-  vector_foo_ulong:[ulong] (id: 24);
+  vector_foo_long:[long] (id: 25);
+  vector_foo_ulong:[ulong] (id: 26);
 
-  vector_foo_float:[float] (id: 25);
-  vector_foo_double:[double] (id: 26);
+  vector_foo_float:[float] (id: 27);
+  vector_foo_double:[double] (id: 28);
 
-  vector_foo_string:[string] (id: 27);
+  vector_foo_string:[string] (id: 29);
+
+  vector_foo_enum:[BaseType] (id: 30);
 
   // And a simple nested application.
-  single_application:Application (id: 28);
-
-  // TODO(austin): enum
+  single_application:Application (id: 31);
 
   // And nest this object to get some crazy coverage.
-  nested_config:Configuration (id: 29);
+  nested_config:Configuration (id: 32);
+
+  vov:VectorOfVectorOfString (id: 33);
 }
 
 root_type Configuration;