Add event framework

Introduce the concept of events, where the existing Dbus signal
match event is one of many possible event classes.

Change-Id: I9b0c6ca12daaa109f8ceb537a5fb0cc6b5f7181b
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/generated.mako.cpp b/generated.mako.cpp
index 862b3b2..2dccf82 100644
--- a/generated.mako.cpp
+++ b/generated.mako.cpp
@@ -38,6 +38,7 @@
         // ${e['description']}
     % endif
         std::make_tuple(
+            std::make_shared<details::DbusSignal>(
         % for i, s in enumerate(e['signature'].items()):
             % if i + 1 == len(e['signature']):
             ${'"{0}=\'{1}\'"'.format(*s)},
@@ -46,16 +47,16 @@
             % endif
         % endfor
             % if e['filter'].get('args'):
-            details::make_filter(filters::${e['filter']['type']}(
+                details::make_filter(filters::${e['filter']['type']}(
                 % for i, a in enumerate(e['filter']['args']):
                     % if i + 1 == len(e['filter']['args']):
-                "${a['value']}")),
+                "${a['value']}"))),
                     % else:
                 "${a['value']}",
                     % endif
                 % endfor
             % else:
-            details::make_filter(filters::${e['filter']['type']}),
+                details::make_filter(filters::${e['filter']['type']})),
             % endif
             % if e['action'].get('args'):
             std::vector<details::ActionBasePtr>({details::make_action(actions::${e['action']['type']}(