Make monotonic_now a required parameter to PhasedLoop

This prepares us much better for mocking out time as part of the event
loop conversion.

Change-Id: I57560b97b265ddd41fe7a4e9f74d7b1324d15955
diff --git a/y2018/actors/autonomous_actor.cc b/y2018/actors/autonomous_actor.cc
index 425f6d3..c195fff 100644
--- a/y2018/actors/autonomous_actor.cc
+++ b/y2018/actors/autonomous_actor.cc
@@ -106,6 +106,7 @@
       ::aos::time::DurationInSeconds(monotonic_clock::now() - start_time));
 
   ::aos::time::PhasedLoop phased_loop(::std::chrono::milliseconds(5),
+                                      event_loop()->monotonic_now(),
                                       ::std::chrono::milliseconds(5) / 2);
 
   while (!ShouldCancel()) {
diff --git a/y2018/actors/autonomous_actor.h b/y2018/actors/autonomous_actor.h
index 50218bb..a97f0d1 100644
--- a/y2018/actors/autonomous_actor.h
+++ b/y2018/actors/autonomous_actor.h
@@ -108,6 +108,7 @@
   bool WaitForArmTrajectoryOrDriveClose(double drive_threshold,
                                         double arm_threshold) {
     ::aos::time::PhasedLoop phased_loop(::std::chrono::milliseconds(5),
+                                        event_loop()->monotonic_now(),
                                         ::std::chrono::milliseconds(5) / 2);
 
     constexpr double kPositionTolerance = 0.02;
@@ -168,6 +169,7 @@
 
   bool WaitForArmTrajectoryClose(double threshold) {
     ::aos::time::PhasedLoop phased_loop(::std::chrono::milliseconds(5),
+                                        event_loop()->monotonic_now(),
                                         ::std::chrono::milliseconds(5) / 2);
     while (true) {
       if (ShouldCancel()) {
@@ -188,6 +190,7 @@
 
   bool WaitForBoxGrabed() {
     ::aos::time::PhasedLoop phased_loop(::std::chrono::milliseconds(5),
+                                        event_loop()->monotonic_now(),
                                         ::std::chrono::milliseconds(5) / 2);
     while (true) {
       if (ShouldCancel()) {