Initial commit of the new libusb plugin code.

Breaking this up so it's easier for you to review.
While it appears this multiple @returns is in spec, it doesn't match the rest of the Doxygen; does it render more clearly than what we currently do; should we start migrating to it?