don't unlink in-flight urbs when closing

Here we just wait for the completion handlers to finish rather than
calling usb_kill_urb, which unlinks them.  Perhaps letting the requests
complete will yield better device behavior.
timeout on wait_event when closing

because I'm just nervous, that's why...
Merge branch 'waitqueue'

Killing the input and output URBs in flight when closing seems to
confuse the PIUIO hardware, causing it not to respond when the device is
re-opened.  We now use a wait queue to allow the last two URBs to
complete when closing, rather than shooting them out of the air.

This *appears* to fix issue #3.