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/DefaultAtomicValueBuilder.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
index a267de0..b39004b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
@@ -31,10 +31,12 @@
     private Serializer serializer;
     private String name;
     private ConsistentMapBuilder<String, byte[]> mapBuilder;
+    private boolean metering = true;
 
     public DefaultAtomicValueBuilder(DatabaseManager manager) {
         mapBuilder = manager.<String, byte[]>consistentMapBuilder()
                             .withName("onos-atomic-values")
+                            .withMeteringDisabled()
                             .withSerializer(Serializer.using(KryoNamespaces.BASIC));
     }
 
@@ -57,7 +59,13 @@
     }
 
     @Override
+    public AtomicValueBuilder<V> withMeteringDisabled() {
+        metering = false;
+        return this;
+    }
+
+    @Override
     public AtomicValue<V> build() {
-        return new DefaultAtomicValue<>(mapBuilder.build(), name, serializer);
+        return new DefaultAtomicValue<>(mapBuilder.build(), name, metering, serializer);
     }
 }
\ No newline at end of file