Fix async cleanup to hold a kref count on the URBs (V2)

See the comments in the code, in the patch and the ticket. URBs are freed by
the USB core code that calls the URB completion routine. Version 2 is much
better. The changes are isolated to just the async free path. Nothing
internal to free_req changes at all.

OXT-30

Signed-off-by: Ross Philipson ross.philipson@gmail.com