Use explicit flatbuffer IDs in y2017 and newer.

Non-explicit ids are risky.  We've seen backwards incompatible
changes...

Change-Id: Id6ceebe031ac80430191f367635d0e951c3d2cbc
diff --git a/y2018/control_loops/superstructure/superstructure_status.fbs b/y2018/control_loops/superstructure/superstructure_status.fbs
index 8baf40e..9f53a82 100644
--- a/y2018/control_loops/superstructure/superstructure_status.fbs
+++ b/y2018/control_loops/superstructure/superstructure_status.fbs
@@ -4,97 +4,97 @@
 
 table IntakeSideStatus {
   // Is the subsystem zeroed?
-  zeroed:bool;
+  zeroed:bool (id: 0);
 
   // The state of the subsystem, if applicable.
-  state:int;
+  state:int32 (id: 1);
 
   // If true, we have aborted.
-  estopped:bool;
+  estopped:bool (id: 2);
 
   // Estimated position of the spring.
-  spring_position:float;
+  spring_position:float (id: 3);
   // Estimated velocity of the spring in units/second.
-  spring_velocity:float;
+  spring_velocity:float (id: 4);
   // Reported wrapping of the spring
-  spring_wrapped:int;
+  spring_wrapped:int (id: 5);
 
   // Estimated position of the joint.
-  motor_position:float;
+  motor_position:float (id: 6);
   // Estimated velocity of the joint in units/second.
-  motor_velocity:float;
+  motor_velocity:float (id: 7);
 
   // Goal position of the joint.
-  goal_position:float;
+  goal_position:float (id: 8);
   // Goal velocity of the joint in units/second.
-  goal_velocity:float;
+  goal_velocity:float (id: 9);
 
   // The calculated velocity with delta x/delta t
-  calculated_velocity:float;
+  calculated_velocity:float (id: 10);
 
   // The voltage given last cycle;
-  delayed_voltage:float;
+  delayed_voltage:float (id: 11);
 
   // State of the estimator.
-  estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState;
+  estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState (id: 12);
 }
 
 table ArmStatus {
   // State of the estimators.
-  proximal_estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState;
-  distal_estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState;
+  proximal_estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState (id: 0);
+  distal_estimator_state:frc971.PotAndAbsoluteEncoderEstimatorState (id: 1);
 
   // The node we are currently going to.
-  current_node:uint;
+  current_node:uint32 (id: 2);
   // Distance (in radians) to the end of the path.
-  path_distance_to_go:float;
+  path_distance_to_go:float (id: 3);
   // Goal position and velocity (radians)
-  goal_theta0:float;
-  goal_theta1:float;
-  goal_omega0:float;
-  goal_omega1:float;
+  goal_theta0:float (id: 4);
+  goal_theta1:float (id: 5);
+  goal_omega0:float (id: 6);
+  goal_omega1:float (id: 7);
 
   // Current position and velocity (radians)
-  theta0:float;
-  theta1:float;
+  theta0:float (id: 8);
+  theta1:float (id: 9);
 
-  omega0:float;
-  omega1:float;
+  omega0:float (id: 10);
+  omega1:float (id: 11);
 
   // Estimated voltage error for the two joints.
-  voltage_error0:float;
-  voltage_error1:float;
+  voltage_error0:float (id: 12);
+  voltage_error1:float (id: 13);
 
   // True if we are zeroed.
-  zeroed:bool;
+  zeroed:bool (id: 14);
 
   // True if the arm is zeroed.
-  estopped:bool;
+  estopped:bool (id: 15);
 
   // The current state machine state.
-  state:uint;
+  state:uint32 (id: 16);
 
-  grab_state:uint;
+  grab_state:uint32 (id: 17);
 
   // The number of times the LQR solver failed.
-  failed_solutions:uint;
+  failed_solutions:uint32 (id: 18);
 }
 
 table Status {
   // Are all the subsystems zeroed?
-  zeroed:bool;
+  zeroed:bool (id: 0);
 
   // If true, any of the subsystems have aborted.
-  estopped:bool;
+  estopped:bool (id: 1);
 
   // Status of both intake sides.
-  left_intake:IntakeSideStatus;
-  right_intake:IntakeSideStatus;
+  left_intake:IntakeSideStatus (id: 2);
+  right_intake:IntakeSideStatus (id: 3);
 
-  arm:ArmStatus;
+  arm:ArmStatus (id: 4);
 
-  filtered_box_velocity:double;
-  rotation_state:uint;
+  filtered_box_velocity:double (id: 5);
+  rotation_state:uint (id: 6);
 }
 
 root_type Status;