Add property and property group support

Add support for defining groups of DBus properties.  Groups are
a list of property/interface/metadata tuples.  Metadata can be used to
give a property context when required.

Change-Id: I5fc27f4d815b53332a2ddea2d270fde8e355dcbc
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/src/example/example.yaml b/src/example/example.yaml
index 87c9790..3d60396 100644
--- a/src/example/example.yaml
+++ b/src/example/example.yaml
@@ -26,3 +26,21 @@
       path: /xyz/openbmc_project/testing/inst3
     - meta: path
       path: /xyz/openbmc_project/testing/inst4
+
+- name: example property group
+  description: >
+    'Like path groups, a property group is a named collection
+    of DBus property names and associated metadata.
+
+    Properties in a group must all have the same DBus type signature
+    and must be explicitly declared.'
+  class: group
+  group: property
+  type: uint32
+  members:
+    - interface: xyz.openbmc_project.Sensor.Value
+      meta: property
+      property: ValueA
+    - interface: xyz.openbmc_project.Sensor.Value
+      meta: property
+      property: ValueB