Implement USB Audio class asynchronous sink support.
Tested only with my own device implementation, so it may or may not work
for commercial devices using async sink endpoints. However, the same device
also works well with ALSA implementation, so chances are it's correct.
The packet size adjustment code is mostly shared with Alesis Multimix support
code, and I haven't tested Multimix after the change, so there's a possibility
of things breaking in short term until I do some tests. On a more positive side,
I've cleaned up the code because I now have a better understanding of the
problem. For one, it now works on sample rate estimation expressed in Hz, not
some arbitrary scaled units.