sdbus++: async: handle zero parameter signals

Adding a zero parameter signal results in the following compile
failure:

```
../include/sdbusplus/message/types.hpp: In instantiation of ‘constexpr auto sdbusplus::message::types::type_id() [with Args = {}]’:
example/gen/net/poettering/Calculator/aserver.hpp:372:58: required from here
../include/sdbusplus/message/types.hpp:302:72: error: no matching function for call to ‘type_id_multiple<>()’
```

Fix this by reusing logic from the non-async code to special case
zero parameter length signals.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I0cde8810dfaf15afa2033a4c6699fb264facb9e8
diff --git a/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako b/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako
index 4f24175..5d4f1e9 100644
--- a/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako
+++ b/tools/sdbusplus/templates/signal.aserver.typeid.hpp.mako
@@ -1,3 +1,7 @@
     static constexpr auto _signal_typeid_${signal.snake_case} =
+% if len(signal.properties) == 0:
+        utility::tuple_to_array(std::make_tuple('\0'));
+% else:
         utility::tuple_to_array(message::types::type_id<\
 ${ ", ".join( [ p.cppTypeParam(interface.name, full=True) for p in signal.properties ]) }>());
+% endif