libbladeRF: Return with error code upon bladerf_sync_rx() timeout

The original plan was going to be to try to restart the worker under the
hood. However, this will likely result in an lost samples anyway; it's
arguably better for the user to know sooner or later that something went
wrong, and give them more control over the situation.

As it stood, this code would result in an infinite loop of trying to
restart the worker.

After a timeout, we now just reset the RX sync handle state. The worker
will be restarted if the user wants to try calling bladerf_sync_rx()
again.