Split actual IOKit HID interfacing off from NJDeviceController.
Fix duplicate entries when merges don't conflict.
Restore application if an error occurs.