hdl: Updating LMS SPI component.

Changing the LMS SPI component to have a clock phase/polarity of
[0,0] instead of [1,1], modifying the SDC to constrain the interface
which was done by mistake and caused timing errors and missed bits.

Also increasing the SCLK frequency to 40MHz.
hdl, libbladeRF: Bumped FPGA version to v0.1.1 for SPI timing fix
hdl: Print MD5 & SHA256 checksums of FPGA images at the end of the build
libbladeRF/tests: Fixed dead code (CID1232253), fixed samplerate range

Removed unnecessary check for low sample rate; this cannot occur.

Fixed the random range to not be so biased toward clamping to the max
sample rate.
libbladeRF/tests: Fixed dead code (CID1232254), fixed bandwidth range

Removed unnecessary check for low bandwidth; this cannot occur.

Fixed random range to not be so biased toward clamping to the max bw.
libbladeRF: Fixed memory leak in error condition (CID1232258)
libbladeRF/tests: Fixed memory leak in error condition (CID1232259)
bladeRF-cli: Fixed memory leak in error condition (CID1234624)
hdl: Store build artifacts in a timestamped directory, with reports

FPGA build artifacts are now copied to a <rev>x<size>-<timestamp>
directory. The .rbf, SHA256 & MD5 checksums, and reports/summaries are
copied into this directory.

This is intended to help keep files with their associated FPGA images, as
items in work/ are clobbered with each invocation of build_bladerf.sh.
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.