fixed various memory leaks/overruns/etc

I found many issues using AddressSanitizer and LeakSanitizer.
diff --git a/frc971/control_loops/claw/claw.cc b/frc971/control_loops/claw/claw.cc
index 22cbf5a..44ec4e8 100644
--- a/frc971/control_loops/claw/claw.cc
+++ b/frc971/control_loops/claw/claw.cc
@@ -51,8 +51,8 @@
 static const double kMaxVoltage = 12.0;
 const double kRezeroThreshold = 0.03;
 
-ClawLimitedLoop::ClawLimitedLoop(StateFeedbackLoop<4, 2, 2> loop)
-    : StateFeedbackLoop<4, 2, 2>(loop),
+ClawLimitedLoop::ClawLimitedLoop(StateFeedbackLoop<4, 2, 2> &&loop)
+    : StateFeedbackLoop<4, 2, 2>(::std::move(loop)),
       uncapped_average_voltage_(0.0),
       is_zeroing_(true),
       U_Poly_((Eigen::Matrix<double, 4, 2>() << 1, 0,
diff --git a/frc971/control_loops/claw/claw.h b/frc971/control_loops/claw/claw.h
index 13d911e..12f7264 100644
--- a/frc971/control_loops/claw/claw.h
+++ b/frc971/control_loops/claw/claw.h
@@ -25,7 +25,7 @@
 
 class ClawLimitedLoop : public StateFeedbackLoop<4, 2, 2> {
  public:
-  ClawLimitedLoop(StateFeedbackLoop<4, 2, 2> loop);
+  ClawLimitedLoop(StateFeedbackLoop<4, 2, 2> &&loop);
   virtual void CapU();
 
   void set_is_zeroing(bool is_zeroing) { is_zeroing_ = is_zeroing; }