Refactor and update to use usb.core instead of usb.legacy

* TEMPer devices are now discovered and created using usb.core
* Bus and Port are now correctly identified
* Added missing docstrings
* Tidied up whitespace for PEP8 compliance