Initial commit of the new libusb plugin code.

Breaking this up so it's easier for you to review.
Is it worth saying why we're switching?