currently we use the endpoint's maximum packet size for recording,
and for playback, we use a packet size that is at least one audio
frame smaller.
in most usb audio devices, the sample clock is synced to the usb
clock. this means that for sample rates that aren't multiples of
1000, we'll occasionally need to add a frame to adjust the overall
rate. that's why we use the smaller packet size.
also, the usb audio spec defines a way for devices to request
to always use the maximum packet size.
so,
* add a max_bytes_per_frame, which is the largest packet size
the channel will use. use that instead of calculating what
the maximum we will use is in a couple places. generally makes
things easier to understand.
* respect a device's request to always use maximum packet size.