added support for both drivetrains with the same code

Previously, we were just switching back and forth manually, which
doesn't work very well. The python code for (both) drivetrain loops now
generates constants for both robots and frc971/constants knows which one
to give the actual drivetrain control loop code.

Various other cleanups to things that were so hard to read it made it
difficult to figure out how to do this too.
diff --git a/frc971/constants.cc b/frc971/constants.cc
index 18d8de2..86431ba 100644
--- a/frc971/constants.cc
+++ b/frc971/constants.cc
@@ -8,6 +8,11 @@
 #include "aos/common/once.h"
 #include "aos/common/network/team_number.h"
 
+#include "frc971/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
+#include "frc971/control_loops/drivetrain/polydrivetrain_clutch_motor_plant.h"
+#include "frc971/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "frc971/control_loops/drivetrain/drivetrain_clutch_motor_plant.h"
+
 #ifndef M_PI
 #define M_PI 3.14159265358979323846
 #endif
@@ -116,6 +121,8 @@
                         kCompLeftDriveShifter,
                         kCompRightDriveShifter,
                         true,
+                        control_loops::MakeVClutchDrivetrainLoop,
+                        control_loops::MakeClutchDrivetrainLoop,
                         kCompCameraCenter};
       break;
     case kPracticeTeamNumber:
@@ -142,6 +149,8 @@
                         kPracticeLeftDriveShifter,
                         kPracticeRightDriveShifter,
                         false,
+                        control_loops::MakeVDogDrivetrainLoop,
+                        control_loops::MakeDogDrivetrainLoop,
                         kPracticeCameraCenter};
       break;
     default: