Parse USB interface association descriptors.

USB interface association descriptors are used to combine multiple
interfaces into a single functional group. This patch adds support for
parsing them out of the |extra_data| field left by libusb's parsing of
configuration, interface and endpoint descriptors. The resulting
association is then represented by setting the |first_interface| field
of each interface in a function to the |interface_number| of the first
interface in the function.

WebUSB will use these associations to set permissions for an entire
function with a single descriptor.

BUG=492204

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

Cr-Commit-Position: refs/heads/master@{#375324}
4 files changed