Add encoding profiling to aos logger

The diagnostic data logger compression uses a significant amount
of CPU. To help profile the system, this change will record the
encode time for each message.

When profiling is enabled (through constructor argument) the encode
times will be collected in a log along with the event loop
monotonic clock time stamps.

Add a python script to create a graph of the encode_times from
the logger.

Change-Id: If1cc19fbffe0ff31f63e5789f610c4ca40a9d47a
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/events/logging/buffer_encoder.cc b/aos/events/logging/buffer_encoder.cc
index 6aba79a..b352d5d 100644
--- a/aos/events/logging/buffer_encoder.cc
+++ b/aos/events/logging/buffer_encoder.cc
@@ -22,7 +22,8 @@
 
 bool DummyEncoder::HasSpace(size_t request) const { return request <= space(); }
 
-size_t DummyEncoder::Encode(Copier *copy, size_t start_byte) {
+size_t DummyEncoder::Encode(Copier *copy, size_t start_byte,
+                            std::chrono::nanoseconds * /*encode_duration*/) {
   const size_t input_buffer_initial_size = input_buffer_.size();
 
   size_t expected_write_size =