libbladeRF: Workaround for deadlock condition

This is a workaround for issue (#324).

We appear to have a lock ordering issue with our stream->lock and the
underlying libusb event lock.  When a libusb event occurs, it acquires
its event lock and then our callback acquires a stream lock.  When we
asynchronously submit a transfer, we acquire the stream lock and then
libusb acquires its event lock under the hood. If a callback occurs
while we're submitting a transfer on the same stream, deadlock ensues,
due to the above asymmetry in lock acquisition.

Ultimately, we'll need to review our locking scheme and libusb event
handling to address underlying design issues here, and potentially trim
some fat.

For now, the lock is just dropped after all metadata has already been
updated, and reacquired after submission.