Make LogReader::OnStart able to start applications at times

There are 2 main features missing from OnStart to make it truly useful
at scale.
1) We need to be able to start applications...
2) Only replaying a time range (typically on the RT clock) is very
   helpful.

Add support for 1.

2 is more tricky.  I considered putting the logic outside LogReader, but
in the end, the bookkeeping for starting and stopping is bad enough that
it really helps to have LogReader manage and synchronize it.  Maybe we
can refactor it back out later.

Change-Id: I4ddf6e18819d3aadd02f38776bbc7aef843a96b0
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
diff --git a/aos/events/simulated_event_loop.h b/aos/events/simulated_event_loop.h
index bd589d6..9a447e9 100644
--- a/aos/events/simulated_event_loop.h
+++ b/aos/events/simulated_event_loop.h
@@ -128,6 +128,11 @@
   // tests.
   void SkipTimingReport();
 
+  // Re-enables application creation for the duration of fn.  This is mostly to
+  // allow use cases like log reading to create applications after the node
+  // starts up without stopping execution.
+  void AllowApplicationCreationDuring(std::function<void()> fn);
+
  private:
   friend class NodeEventLoopFactory;