Add chrome.usb.getConfiguration and expose extra descriptors.

Adds a new API function, chrome.usb.getConfiguration, that returns all
the data from the device's configuration descriptor instead of just the
interfaces as chrome.usb.listInterfaces does. Each level of the
descriptor hierarchy also gets an "extra_data" field which contains all
of the miscellaneous descriptors assocated with a configuration,
interface or endpoint.

BUG=382908

Review URL: https://codereview.chromium.org/558373002

Cr-Commit-Position: refs/heads/master@{#294758}
5 files changed