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/robot_state/joystick_state.fbs b/aos/robot_state/joystick_state.fbs
new file mode 100644
index 0000000..f21b211
--- /dev/null
+++ b/aos/robot_state/joystick_state.fbs
@@ -0,0 +1,41 @@
+namespace aos;
+
+table Joystick {
+  // A bitmask of the butotn state.
+  buttons:ushort;
+
+  // The 6 joystick axes.
+  // TODO: Should have size of 6
+  axis:[double];
+
+  // The POV axis.
+  pov:int;
+}
+
+// This message is checked by all control loops to make sure that the
+// joystick code hasn't died.  It is published on "/aos"
+table JoystickState {
+  //TODO: should have fixed size.
+  joysticks:[Joystick];
+
+  test_mode:bool;
+  fms_attached:bool;
+  enabled:bool;
+  autonomous:bool;
+  team_id:ushort;
+
+  // 2018 scale and switch positions.
+  // TODO(austin): Push these out to a new message?
+  switch_left:bool;
+  scale_left:bool;
+
+  // If this is true, then this message isn't actually from the control
+  // system and so should not be trusted as evidence that the button inputs
+  // etc are actually real and should be acted on.
+  // However, most things should ignore this so that sending fake messages is
+  // useful for testing. The only difference in behavior should be motors not
+  // actually turning on.
+  fake:bool;
+}
+
+root_type JoystickState;