Added graceful shutdown for upstart service.
Reworked slightly the mastership & device managers and stores to make it work (sort-of) in the distributed env.
diff --git a/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java b/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java
index cb4a076..3e2ee03 100644
--- a/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java
+++ b/core/api/src/main/java/org/onlab/onos/cluster/MastershipStore.java
@@ -14,26 +14,21 @@
     // three things to map: NodeId, DeviceId, MastershipRole
 
     /**
-     * Sets a device's role for a specified controller instance.
+     * Requests role of the local node for the specified device.
      *
-     * @param instance controller instance identifier
      * @param deviceId device identifier
-     * @param role     new role
-     * @return a mastership event
+     * @return established or newly negotiated mastership role
      */
-    MastershipEvent setRole(NodeId instance, DeviceId deviceId,
-                            MastershipRole role);
+    MastershipRole requestRole(DeviceId deviceId);
 
     /**
-     * Adds or updates mastership information for a device.
+     * Returns the role of a device for a specific controller instance.
      *
-     * @param instance controller instance identifier
-     * @param deviceId device identifier
-     * @param role     new role
-     * @return a mastership event
+     * @param nodeId   the instance identifier
+     * @param deviceId the device identifiers
+     * @return the role
      */
-    MastershipEvent addOrUpdateDevice(NodeId instance, DeviceId deviceId,
-                                      MastershipRole role);
+    MastershipRole getRole(NodeId nodeId, DeviceId deviceId);
 
     /**
      * Returns the master for a device.
@@ -52,11 +47,13 @@
     Set<DeviceId> getDevices(NodeId nodeId);
 
     /**
-     * Returns the role of a device for a specific controller instance.
+     * Sets a device's role for a specified controller instance.
      *
-     * @param nodeId the instance identifier
-     * @param deviceId   the device identifiers
-     * @return the role
+     * @param nodeId   controller instance identifier
+     * @param deviceId device identifier
+     * @param role     new role
+     * @return a mastership event
      */
-    MastershipRole getRole(NodeId nodeId, DeviceId deviceId);
+    MastershipEvent setRole(NodeId nodeId, DeviceId deviceId,
+                            MastershipRole role);
 }