update usb core to facilitate interactive sessions

- add Interface.descriptor, Interface.descriptor_summary, Interface.descriptor_full
- add _try_get_string and _try_lookup helper functions
- add Interface.endpoints that will return a list of all endpoints
- add similar functions for Device, Configuration and Endpoint
- add show_device_info with a verbose flag which can be True or "very"