Relinquish mastership when device reports "permission" denied event

Also reduces default pipeconf watchdog probe interval
Also fixes NPE on GDP when device is unreachable

Change-Id: Ie2fe1874b0883a037596d9a555a2f8cc030a55a6
(cherry picked from commit d797e2c28505fbdbb8597038ebcf977a053bae72)
diff --git a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
index 42faa0c..e5c321e 100644
--- a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
+++ b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
@@ -455,7 +455,7 @@
         // Start connection via handshaker.
         final Boolean connectSuccess = getFutureWithDeadline(
                 handshaker.connect(), "initiating connection",
-                deviceId, null, opTimeoutShort);
+                deviceId, false, opTimeoutShort);
         if (!connectSuccess) {
             log.warn("Unable to connect to {}", deviceId);
         }
@@ -887,6 +887,12 @@
         }
     }
 
+    private void handleNotMaster(DeviceId deviceId) {
+        log.warn("Device {} notified that this node is not master, " +
+                         "relinquishing mastership...", deviceId);
+        mastershipService.relinquishMastership(deviceId);
+    }
+
     private <U> U getFutureWithDeadline(CompletableFuture<U> future, String opDescription,
                                         DeviceId deviceId, U defaultValue, int timeout) {
         try {
@@ -948,6 +954,9 @@
                 case ROLE_NONE:
                     handleMastershipResponse(deviceId, MastershipRole.NONE);
                     break;
+                case NOT_MASTER:
+                    handleNotMaster(deviceId);
+                    break;
                 default:
                     log.warn("Unrecognized device agent event {}", event.type());
             }