runner: nrfjprog: Improve error messages

When a debugger is already connected to the JLink debug adapter
nrfjprog.py would incorrectly detect that the snr is '0' and try to
flash a device with that snr.

Also, when there were no boards connected, nrfjprog.py would
incorrectly state that there were multiple boards connected.

This patch improves the error feedback so that a user can more easily
debug why he can't flash his device.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
diff --git a/scripts/support/runner/nrfjprog.py b/scripts/support/runner/nrfjprog.py
index 7a7c063..d95de25 100644
--- a/scripts/support/runner/nrfjprog.py
+++ b/scripts/support/runner/nrfjprog.py
@@ -40,8 +40,13 @@
         snrs = self.check_output(['nrfjprog', '--ids'])
         snrs = snrs.decode(sys.getdefaultencoding()).strip().splitlines()
 
-        if len(snrs) == 1:
-            return snrs[0]
+        if len(snrs) == 0:
+            raise Exception('"nrfjprog --ids" did not find a board; Is the board connected?')
+        elif len(snrs) == 1:
+            board_snr = snrs[0]
+            if board_snr == '0':
+                raise Exception('"nrfjprog --ids" returned 0; is a debugger already connected?')
+            return board_snr
 
         print('There are multiple boards connected.')
         for i, snr in enumerate(snrs, 1):