Update to use usb.core instead of usb.legacy

This updated fixed issue #8 which was due to a fault in the way TEMPer USB device bus and port numbers were being polled.

As per the tutorial, [pyusb](http://pyusb.sourceforge.net/docs/1.0/tutorial.html) offers a ```legacy``` module specifically for using libusb 0.1. This has been superseded by the ```core``` module which attempts to use the best possible backend, (usually libusb 1.0). 

Temper-python previously used ```usb.legacy``` and is now updated to use ```usb.core```. This allows the bus and port to be discovered more reliably.

* TEMPer devices are now discovered and created using usb.core.
* Device ```bus``` and ```ports``` are now correctly identified
* ```find_ports()``` updated to use ```usb.core``` and now fails gracefully if ports can not be discovered, (previously threw an unhandled exception as per #8).
* Added missing docstrings.
* Tidied up whitespace for PEP8 compliance.