libbladeRF: Added samples <-> bytes conversion routines

These will become the preferred method of performing such
conversions in upcoming commits, where additional formats
will be added.
libbladeRF: Added simple test to check for RX discontinuities

This program enables the FPGA's internal 32-bit counter mode and
looks for any gaps in the received data, which would be indicative
of the host or USB i/f failing to keep up with the sample rate.
libbladeRF: Added support for Cypress Windows Driver & API backend

A USB backend based atop of the Cypress CyAPI (which is based atop the
Cypress CyUSB3 driver) has been introduced. This is intended to provide
Windows users with an additional driver to use if they encounter issues
with their USB host controller and libusb.

To build and use this backend, the Cypress FX3 SDK must be installed and
the following CMake flags should be provided:
    -DENABLE_BACKEND_CYAPI=Yes -DFX3_SDK_PATH=<path to SDK>

A modified cyusb3.inf is provided in host/drivers/windows/cyusb3. Upon
performing a build this inf file and the associated driver files from
the FX3 SDK will be copied into the "output" directory along with the
bladeRF.dll and bladeRF-cli.exe. To install the driver, point the
Windows driver update to this location and accept the warning about the
driver being unsigned; this occurs because the Cypress driver wasn't
signed with bladeRF VID/PID values.

The libbladeRF device string for this backend is: "cypress"

Many thanks go out to LazyDodo for all his efforts in spearheading the
development of this backend -- much of this code is either his doing or
is directly based upon his efforts.
bladeRF-cli: Updated backend names reported by info/probe
libbladeRF: Don't fail out of probe/open if device can't be opened

libusb appears to return a "not supported" error if a device is currently
associated with a different driver, such as CyUSB3.

We'll want to continue looking for libusb devices rather than bail out
if we encounter this error, as we may have hit a device belonging to
our CyUSB backend
libbladeRF: Updated default backend selections, remove unused items

The libusb and Cypress backends are now defaulted to ON if they are
detected on the system, and OFF otherwise.

The deprecated Linux kernel driver option has been removed. It will
be re-added if and when this code is updated/rewritten.

The "detach kernel module" libusb option has been removed, as it was
unused anyway.
libbladeRF: Minor touch-ups in libusb backend

Removed switch() on sample format and replaced it with a call to the
new async_stream_buf_bytes(). This will become more relevant in upcoming
changesets when new formats are added.

Other changes are just aesthetic house-cleaning items. Shortening some
lines and long variable names.
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