libbladeRF: Continue searching USB devices after encountering a failure

Bailing out immediately upon failing to open or claim a device prevents
us from being able to open any available device if one or more is
already in use.
cmake: Set Windows-specific LIBUSB_PATH default only for WIN32 systems
libbladeRF: Updated dev info string information for bladerf_open() docs

Added note about "*:" being a valid backend specifier for "any available
backend," and removed reference to currently deprecated Linux kernel
backend.
libbladeRF: Added bladerf_open_with_devinfo() example, updated docs
libbladeRF: bladerf_open_with_devinfo() now handles NULL devinfo ptr

To be consistent with bladerf_open(NULL), this will open the first
available device.
libbladeRF: Enforce exclusive device access in Cypress backend

A named mutex is used to ensure that only one process can access a bladeRF, as
the library architecture is not currently designed to support this.

Note that the usb.c code sets up the default alt setting. Hence, this was not
included in the new open_device() call.
libbladeRF: Cleaned up si5338 output levels

The debug level is intended for higher level operation and information
pertaining to why error values are returned.

Therefore, low-level messages have been moved to the verbose log level,
and error messages have been moved to debug.

The error log level is intended for fatal conditions that will likely
lead to a crash, rather than cleanly return an error code.
libbladeRF: Cleaned up log lines in si5338.c

Aesthetic change only. It is preferred that lines be <= 80 characters.
cmake: Copy CYUSB3 driver based upon host processor, not build config

A 64-bit CYUSB3 driver should be installed on 64-bit machines, regardless of the
userspace software being configured for a 32-bit build.
bladeRF-cli: Use synchronous API calls for rx/tx command implementations

As noted in the libbladeRF API documentation, long operations should not
be performed in the asynch stream callbacks. Given that the rx/tx
tasks are mainly performing disk I/O in these callbacks, the synchronous
interface is more appropriate.  Secondly, the sync interface is simpler,
lending itself to more readable code.

To further improve readability, the logic dealing with repetitions and
delays in the tx command has been changed to a state machine.

Additionally, the delays in the TX command are now implemented by
transmitting an appropriate number of zero samples. This yields more
accurate delays.
bladeRF-cli: Use MUTEX_* macros from thread.h

These macros allow for deadlock checks to be compiled in.
bladeRF-cli: Fixed potential lockup when starting up RX/TX task

The `status` variable needs to be checked in the while loop, otherwise
a timeout from pthread_cond_timedwait() would be ignored.
bladeRF_cli: Reset rx/tx worker status after on successive startups

Upon a failure, a bad status value was being kept around, causing
the rx/tx tasks to not begin functioning.
bladeRF-cli: Warning cleanup (MSVC)

Fixed some type-related warnings encountered with MSVC.

size_t was uneccessy for the data_mgmt fields. These are initialized via
unsigned ints anyway.
libbladeRF: Create Cypress backend mutex in global namespace

It appears that the session namespace may be the default. Since the device shall
only be in use by 1 process in the system across all users, the global namespace
is explicitly used.
bladeRF-cli: Additional fix for CID1234624

The fix in 2f193db1 missed the return that occurs if no device is open.
bladeRF-cli: Updated error message to include str from bladerf_strerror()

Asking the user if the FX3 is programmed isn't terribly helpful, and
actually causes more confusion. Showing the bladerf_strerror() output
instead is more useful when troubleshooting.
libbladeRF: Additional fixes for CID1232253, CID1232254

These were not fully fixed in 073bd46 and 3fd13f7, respectively.
libbladeRF: Fix for CID1249706 (Unchecked return value)

This particular item is rather benign, but it might be useful to know
what error was associated with the failure on the corrected line.
libbladeRF: Fixed potential integer overflow (CID1249702)

The right hand side of the expression could overflow before being
widened to a 64-bit value.