Add throw and override modes for the Arm

This lets us throw boxes in teleop, and also get unstuck from under or
over the scale

Change-Id: Ia71824d8ae5801795d7ea21ce1becdfc1d2b55ee
diff --git a/y2018/control_loops/superstructure/arm/arm.h b/y2018/control_loops/superstructure/arm/arm.h
index 9493037..d3dd2df 100644
--- a/y2018/control_loops/superstructure/arm/arm.h
+++ b/y2018/control_loops/superstructure/arm/arm.h
@@ -38,10 +38,11 @@
                bool close_claw, const control_loops::ArmPosition *position,
                const bool claw_beambreak_triggered,
                const bool box_back_beambreak_triggered,
-               const bool intake_clear_of_box, double *proximal_output,
+               const bool intake_clear_of_box,
+               bool suicide, bool trajectory_override,
+               double *proximal_output,
                double *distal_output, bool *release_arm_brake,
-               bool *claw_closed, control_loops::ArmStatus *status,
-               bool suicide);
+               bool *claw_closed, control_loops::ArmStatus *status);
 
   void Reset();
 
@@ -71,6 +72,10 @@
   // intake position to release the box when the state machine is lifting.
   double max_intake_override() const { return max_intake_override_; }
 
+  uint32_t current_node() const { return current_node_; }
+
+  double path_distance_to_go() { return follower_.path_distance_to_go(); }
+
  private:
   bool AtState(uint32_t state) const { return current_node_ == state; }
   bool NearEnd(double threshold = 0.03) const {