Heap allocate the drivetrain to preserve stack

We were overflowing the stack because the drivetrain code had grown to
use enough memory to cause problems.  Switch to heap allocating the
object since it can be pre-allocated regardless.

Change-Id: I5264ea976239174dd86302b065e9ea5e27321424
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/y2016/control_loops/drivetrain/drivetrain_main.cc b/y2016/control_loops/drivetrain/drivetrain_main.cc
index 3c60a63..7edcde5 100644
--- a/y2016/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2016/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
 
 #include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
 #include "frc971/control_loops/drivetrain/drivetrain.h"
 #include "y2016/control_loops/drivetrain/drivetrain_base.h"
 
@@ -15,7 +16,7 @@
   ::aos::ShmEventLoop event_loop(&config.message());
   ::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
       &event_loop, ::y2016::control_loops::drivetrain::GetDrivetrainConfig());
-  DrivetrainLoop drivetrain(
+  std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
       ::y2016::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
       &localizer);