ONOS-2456 Added usage metrics to Atomic Counter and Distributed Queue plus refactored the code a bit

Refactored code plus instrumented AtomicValue and DistributedSet

Change-Id: I9c5f7c9f23d530131f15d3c98250ea33238dd2ec
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultDistributedSetBuilder.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultDistributedSetBuilder.java
index b3e3da3..07b59ad 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultDistributedSetBuilder.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultDistributedSetBuilder.java
@@ -30,9 +30,11 @@
 
     private String name;
     private ConsistentMapBuilder<E, Boolean>  mapBuilder;
+    private boolean metering = true;
 
     public DefaultDistributedSetBuilder(DatabaseManager manager) {
         this.mapBuilder = manager.consistentMapBuilder();
+        mapBuilder.withMeteringDisabled();
     }
 
     @Override
@@ -73,7 +75,13 @@
     }
 
     @Override
+    public DistributedSetBuilder<E> withMeteringDisabled() {
+        metering = false;
+        return this;
+    }
+
+    @Override
     public DistributedSet<E> build() {
-        return new DefaultDistributedSet<E>(name, mapBuilder.build());
+        return new DefaultDistributedSet<E>(name, metering, mapBuilder.build());
     }
 }