Add path and path group support

Add support for defining groups of object paths.  Groups are
a list of path/metadata tuples.  Metadata can be used to
give a path context when required.

Change-Id: I355ebf76b40f2ffc8d783e94e888b930cde8ee9c
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/src/example/example.yaml b/src/example/example.yaml
index 5a798e9..87c9790 100644
--- a/src/example/example.yaml
+++ b/src/example/example.yaml
@@ -1 +1,28 @@
 # Example PDM configuration file.
+
+- name: example path group
+  description: >
+    'A path group is a named collection of DBus object
+    paths and associated metadata.  These collections
+    serve only to be referenced by other configuration
+    directives.
+
+    The metadata element has different uses depending
+    on the referencing directive.
+
+    Within a single configuration file path group names
+    must be unique.  The same name can appear in multiple
+    configuration files; however, the referencing directive
+    will only search for the group in the same configuration
+    file.'
+  class: group
+  group: path
+  members:
+    - meta: path
+      path: /xyz/openbmc_project/testing/inst1
+    - meta: path
+      path: /xyz/openbmc_project/testing/inst2
+    - meta: path
+      path: /xyz/openbmc_project/testing/inst3
+    - meta: path
+      path: /xyz/openbmc_project/testing/inst4