use pyusb.core instead of pyusb.legacy

Hi,

I've two further improvements for you:
the first, small commit fixes a left over python3 incompatibility.
the second commit converts all usb control calls from usb.legacy to usb.core. So the code now requires pyusb >= 1.