Initial commit of the new libusb plugin code.

Breaking this up so it's easier for you to review.
Should you not be wrapping close too?