Fixed issue #6 and added logging

* Previously a ```detach_kernel_driver()``` call was being made on every poll, rather than only when it was required. This seems to have been breaking the USB connection after a small number of polls. Now a kernel detach is only requested when explicitly required. In preliminary tests this seems to have fixed the various USBErrors documented in issue #7.
* Added debug and info logging.