Made Device.runCmdList and DeviceSet.runCmdDict reentrant
(DeviceSet.connect still needs this treatment)