In PyUSB 1.0.0.b1, the usb.util.get_string function takes a lenght argument.
In PyUSB 1.0.0.b2, it no longer takes a length argument.
Since python2 seems to come with PyUSB 1.0.0.b1 and python3 seems to come
with 1.0.0.b2, this change allows the same source to work with either
version of PyUSB.
You can now use ./pydfu.py -l to list available DFU devices.
You can now use ./pydfu.py -u firmware.dfu to program .dfu files.
Made --mass-storage be an option, and it now erases pages as needed
by default rather than erasing everything.
I didn't maintain support for raw binary files, but that would be
easy to add back if needed.
The file is now mostly pep8 and pylint clean.