Expose the private buffers from fetchers too

This is handy for the same use cases where getting the shared memory is:
teaching other libraries about it to optimize its usage.

Change-Id: I41657333a70c2b9c9dbf8a30f0c52251eb590ba4
diff --git a/aos/events/event_loop.h b/aos/events/event_loop.h
index 7634479..6cb0365 100644
--- a/aos/events/event_loop.h
+++ b/aos/events/event_loop.h
@@ -594,12 +594,18 @@
   // watcher must exist before calling this.
   WatcherState *GetWatcherState(const Channel *channel);
 
-  // Returns a Sender's protected RawSender
+  // Returns a Sender's protected RawSender.
   template <typename T>
   static RawSender *GetRawSender(aos::Sender<T> *sender) {
     return sender->sender_.get();
   }
 
+  // Returns a Fetcher's protected RawFetcher.
+  template <typename T>
+  static RawFetcher *GetRawFetcher(aos::Fetcher<T> *fetcher) {
+    return fetcher->fetcher_.get();
+  }
+
   // Context available for watchers, timers, and phased loops.
   Context context_;