Refactoring of the usb backend.

refactor of the usb backend + basic cypress driver support.