[VOL-2454] Fix for device deletion in the rw_core

When a parent device is deleted, its child devices are deleted
as well.  The state machine in the Core ensures this process occurs.
However, there were "duplicate" codes during the parent device
deletion where it was triggering child devices in being deleted
again.  This is incorrect is being addressed by this change.

Change-Id: I8dbbe48e97f70638a0ea28444825452b366da137
diff --git a/db/model/persisted_revision.go b/db/model/persisted_revision.go
index b9aad44..e0fcb10 100644
--- a/db/model/persisted_revision.go
+++ b/db/model/persisted_revision.go
@@ -345,24 +345,21 @@
 // Drop takes care of eliminating a revision hash that is no longer needed
 // and its associated config when required
 func (pr *PersistedRevision) StorageDrop(txid string, includeConfig bool) {
-	log.Debugw("dropping-revision", log.Fields{"txid": txid, "hash": pr.GetHash(), "config-hash": pr.GetConfig().Hash})
+	log.Debugw("dropping-revision", log.Fields{"txid": txid, "hash": pr.GetHash(), "config-hash": pr.GetConfig().Hash, "key": pr.GetName(), "isStored": pr.isStored})
 
 	pr.mutex.Lock()
 	defer pr.mutex.Unlock()
 	if pr.kvStore != nil && txid == "" {
-		if pr.isStored {
-			if pr.isWatched {
-				pr.kvStore.DeleteWatch(pr.GetName(), pr.events)
-				pr.isWatched = false
-			}
-
-			if err := pr.kvStore.Delete(pr.GetName()); err != nil {
-				log.Errorw("failed-to-remove-revision", log.Fields{"hash": pr.GetHash(), "error": err.Error()})
-			} else {
-				pr.isStored = false
-			}
+		if pr.isWatched {
+			pr.kvStore.DeleteWatch(pr.GetName(), pr.events)
+			pr.isWatched = false
 		}
 
+		if err := pr.kvStore.Delete(pr.GetName()); err != nil {
+			log.Errorw("failed-to-remove-revision", log.Fields{"hash": pr.GetHash(), "error": err.Error()})
+		} else {
+			pr.isStored = false
+		}
 	} else {
 		if includeConfig {
 			log.Debugw("attempted-to-remove-transacted-revision-config", log.Fields{"hash": pr.GetConfig().Hash, "txid": txid})