Added a LogicalClockService for ordering arbitrary events in the cluster. Updated couple of areas that are currently vulnerable to clock skew

Change-Id: I14548ecb3c783104de8d72cbb5eb21de6ece08ed
diff --git a/core/api/src/main/java/org/onosproject/store/service/LogicalClockService.java b/core/api/src/main/java/org/onosproject/store/service/LogicalClockService.java
new file mode 100644
index 0000000..799f723
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/store/service/LogicalClockService.java
@@ -0,0 +1,20 @@
+package org.onosproject.store.service;
+
+import org.onosproject.store.Timestamp;
+
+/**
+ * Service that issues logical timestamps.
+ * <p>
+ * The logical timestamps are useful for establishing a total ordering of
+ * arbitrary cluster wide events without relying on a fully synchronized
+ * system clock (wall clock)
+ */
+public interface LogicalClockService {
+
+    /**
+     * Generates a new logical timestamp.
+     *
+     * @return timestamp
+     */
+    Timestamp getTimestamp();
+}