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/y2017/control_loops/superstructure/superstructure_goal.fbs b/y2017/control_loops/superstructure/superstructure_goal.fbs
new file mode 100644
index 0000000..6681262
--- /dev/null
+++ b/y2017/control_loops/superstructure/superstructure_goal.fbs
@@ -0,0 +1,74 @@
+include "frc971/control_loops/control_loops.fbs";
+
+namespace y2017.control_loops.superstructure;
+
+table IntakeGoal {
+  // Zero for the intake is when the front tube is tangent with the front of the
+  // frame. Positive is out.
+
+  // Goal distance of the intake.
+  distance:double;
+
+  // Caps on velocity/acceleration for profiling. 0 for the default.
+  profile_params:frc971.ProfileParameters;
+
+  // Voltage to send to the rollers. Positive is sucking in.
+  voltage_rollers:double;
+
+  // If true, disable the intake so we can hang.
+  disable_intake:bool;
+
+  // The gear servo value.
+  gear_servo:double;
+}
+
+table IndexerGoal {
+  // Indexer angular velocity goals in radians/second.
+  angular_velocity:double;
+
+  // Roller voltage. Positive is sucking in.
+  voltage_rollers:double;
+}
+
+table TurretGoal {
+  // An angle of zero means the turrent faces toward the front of the
+  // robot where the intake is located. The angle increases when the turret
+  // turns clockwise (towards right from the front), and decreases when
+  // the turrent turns counter-clockwise (towards left from the front).
+  // These are from a top view above the robot.
+  angle:double;
+
+  // If true, ignore the angle and track using vision.  If we don't see
+  // anything, we'll use the turret goal above.
+  track:bool;
+
+  // Caps on velocity/acceleration for profiling. 0 for the default.
+  profile_params:frc971.ProfileParameters;
+}
+
+table HoodGoal {
+  // Angle the hood is currently at. An angle of zero is at the lower hard
+  // stop, angle increases as hood rises.
+  angle:double;
+
+  // Caps on velocity/acceleration for profiling. 0 for the default.
+  profile_params:frc971.ProfileParameters;
+}
+
+table ShooterGoal {
+  // Angular velocity goals in radians/second. Positive is shooting out of the
+  // robot.
+  angular_velocity:double;
+}
+
+table Goal {
+  intake:IntakeGoal;
+  indexer:IndexerGoal;
+  turret:TurretGoal;
+  hood:HoodGoal;
+  shooter:ShooterGoal;
+  lights_on:bool;
+  use_vision_for_shots:bool;
+}
+
+root_type Goal;