redid actions to use a counter and not have race conditions

Before, there were a lot of ways for the client-side action code to lock
up.
diff --git a/frc971/input/joystick_reader.cc b/frc971/input/joystick_reader.cc
index ecb93f2..ddb03fe 100644
--- a/frc971/input/joystick_reader.cc
+++ b/frc971/input/joystick_reader.cc
@@ -183,7 +183,7 @@
 
   // Returns true if any action is running or could be running.
   // For a one cycle faster response, call Tick before running this.
-  bool Running() { return (bool)current_action_; }
+  bool Running() { return static_cast<bool>(current_action_); }
 
  private:
   ::std::unique_ptr<Action> current_action_;