ONOS-6257: fixing Region-peer-location function...

- corrected UiRegion.isRoot() implementation
- added to/from-compact-strings for LayoutLocation, so we can encode
   a list of them in an annotation
- Fixed bug in DistributedRegionStore which was emiting events that
   had a null region as subject.

Change-Id: I547e0c7f62385b85b191b8d63e6b569196623b84
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java
index ada4d15..0a2fa2f 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java
@@ -123,7 +123,7 @@
      * @return true if root region
      */
     public boolean isRoot() {
-        return id().equals(parent);
+        return parent == null;
     }
 
     /**
@@ -181,7 +181,7 @@
      * @return the backing region instance
      */
     public Region backingRegion() {
-        return topology.services.region().getRegion(regionId);
+        return isRoot() ? null : topology.services.region().getRegion(regionId);
     }
 
     /**