sdbus++: events: create json for events

Create JSON for the events containing their metadata and leverage that
as the "message" portion of the `sd_bus_error`.  This will allow
unpacking the message on a client side back to the original exception.

Tested:
```
$ busctl --user call net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator Divide xx 5 0
Call failed: {"net.poettering.Calculator.DivisionByZero":{"FOO":"unused"}}
```

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I4edd76d983267f28e51c4aa41902d45f5d6da793
diff --git a/meson.build b/meson.build
index 52e330a..598ad64 100644
--- a/meson.build
+++ b/meson.build
@@ -12,6 +12,7 @@
 )
 
 libsystemd_pkg = dependency('libsystemd')
+nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
 
 python = import('python')
 python_bin = python.find_installation('python3', modules:['inflection', 'yaml', 'mako'])
@@ -40,7 +41,10 @@
     'sdbusplus',
     libsdbusplus_src,
     include_directories: root_inc,
-    dependencies: libsystemd_pkg,
+    dependencies: [
+        libsystemd_pkg,
+        nlohmann_json_dep
+    ],
     version: meson.project_version(),
     install: true,
 )
@@ -60,7 +64,11 @@
 sdbusplus_dep = declare_dependency(
     include_directories: root_inc,
     link_with: libsdbusplus,
-    dependencies: [ libsystemd_pkg, boost_dep ],
+    dependencies: [
+        boost_dep,
+        libsystemd_pkg,
+        nlohmann_json_dep,
+    ],
 )
 
 subdir('tools')