libbladeRF: Fixed use after free

The `stream` pointer is freed in async_deinit_stream, so it cannot
be dereferenced when unlocking a device's control lock.  However,
it is safe to store a pointer to the device handle associated with the
stream, as this is still valid.
libbladeRF: Fixed deadlock condition

Functions in async.c shouldn't call back up into the top-level API
functions in bladerf.c. Lock acquisitions in the API top level would
yield deadlock if this error case occurred.
libbladeRF: Added additional elaboration to SC16Q11 format
libbladeRF: [WIP] Began adding RX timestamp support (untested)
libbladeRF/test: Moved PRNG routine to common dir for use in other tests
libbladeRF: [WIP] Added preliminary timestamps test
libbladeRF: [WIP] Added GPIO bit definitions for timestamps
libbladeRF: [WIP] Added missing cases to switch statements
libbladeRF: [WIP] Added GPIO setup to sync_init
libbladeRF/test: [WIP] Fixed bugs in timestamp test
libbladeRF: [WIP] Fixes to logic errors in RX metadata handling
libbladeRF: [WIP] Added missing reset of message number
libbladeRF/test: Fixed logical errors with random gap in timestamp test
libbladeRF/test: [WIP] Moved sync config to main app param setup
libbladeRF/test: [WIP] Fixed logic when seeking across buffers, misc fixes
libbladeRF/test: [WIP] Fixed calculation of metadata samples left in buffer
libbladeRF/test: [WIP] Added missing message number reset
libbladeRF/test: [WIP] Added more test cases to test_rx_scheduled
libbladeRF: Added API definition for FPGA counter mode enable bit
libbladeRF/test: [WIP] Added counter mode usage -- still debugging