Avoid handling duplicate devices

If one USB device is using 2 USB ports, we can get 2 callbacks for the
device from IOKit. Notably, a Das Keyboard ends up taking two device
handler spots, which means that any pressed key is processed twice.
Avoid this by testing if we're already handling the device in the IOKit
callback.