Switch Send to taking a const void* instead of void*

We weren't modifying the memory anyways, so this is more correct.  And
it allows sending const void* buffers without const_cast.

Change-Id: I09af30711e23af9071b24aa1ebfd074c183d908d
diff --git a/aos/events/event_loop.h b/aos/events/event_loop.h
index 278fc9c..34e55a8 100644
--- a/aos/events/event_loop.h
+++ b/aos/events/event_loop.h
@@ -76,7 +76,7 @@
   virtual bool Send(size_t size) = 0;
 
   // Sends a single block of data by copying it.
-  virtual bool Send(void *data, size_t size) = 0;
+  virtual bool Send(const void *data, size_t size) = 0;
 
   // Returns the name of this sender.
   virtual const absl::string_view name() const = 0;
diff --git a/aos/events/shm_event_loop.cc b/aos/events/shm_event_loop.cc
index 7506954..8fed31e 100644
--- a/aos/events/shm_event_loop.cc
+++ b/aos/events/shm_event_loop.cc
@@ -290,8 +290,8 @@
     return true;
   }
 
-  bool Send(void *msg, size_t length) override {
-    lockless_queue_sender_.Send(reinterpret_cast<char *>(msg), length);
+  bool Send(const void *msg, size_t length) override {
+    lockless_queue_sender_.Send(reinterpret_cast<const char *>(msg), length);
     lockless_queue_.Wakeup(shm_event_loop_->priority());
     // TODO(austin): Return an error if we send too fast.
     return true;
diff --git a/aos/events/simulated_event_loop.cc b/aos/events/simulated_event_loop.cc
index 02270ce..d374bb7 100644
--- a/aos/events/simulated_event_loop.cc
+++ b/aos/events/simulated_event_loop.cc
@@ -129,7 +129,7 @@
     return true;
   }
 
-  bool Send(void *msg, size_t size) override {
+  bool Send(const void *msg, size_t size) override {
     CHECK_LE(size, this->size()) << ": Attempting to send too big a message.";
 
     // This is wasteful, but since flatbuffers fill from the back end of the