Consolidating null providers and making them fully configurable and integrated with the ConfigProvider to allow arbitrary topologies.

Change-Id: I899e27a9771af4013a3ce6da7f683a4927ffb438
diff --git a/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java b/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
index ae1669b..1930a47 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
@@ -705,7 +705,8 @@
                         remove(new GroupStoreKeyMapKey(deviceId, group.appCookie()));
                 }
             } else {
-                if (deviceAuditStatus.get(deviceId)) {
+                Boolean audited = deviceAuditStatus.get(deviceId);
+                if (audited != null && audited) {
                     log.debug("deviceInitialAuditCompleted: Clearing AUDIT "
                                       + "status for device {}", deviceId);
                     deviceAuditStatus.put(deviceId, false);
@@ -717,8 +718,8 @@
     @Override
     public boolean deviceInitialAuditStatus(DeviceId deviceId) {
         synchronized (deviceAuditStatus) {
-            return (deviceAuditStatus.get(deviceId) != null)
-                    ? deviceAuditStatus.get(deviceId) : false;
+            Boolean audited = deviceAuditStatus.get(deviceId);
+            return audited != null && audited;
         }
     }