generate_bash: replace expr with grep

"Use expr," they said.  "It'll be easy," they said.

Fixes:
./generate.bash: line 99: [: -gt: unary operator expected
when the line contains parens.
bladeRF-cli: rv interactive-help.md clobber
bladeRF-cli: some minor doc cleanup
libbladeRF: Fixed memory leak of libusb_config_descriptor
libbladeRF: Removed old error tracking code and structures
libbladeRF: Moved "get sampling" implementation to lms.c
libbladeRF: Minor formatting touchup, GCC 4.8 warning workaround

GCC 4.8.1 and 4.8.2 appear to incorrectly warn about a possible
uninitialized variable. module doesn't change, so the lna_gain and
rxvga2 should always have a value when we write them on 2197 and 2207.
libbladeRF: Changed "loss of precision" warning to debug output
libbladeRF: Introduced thread-safety to the API

Top-level API functions now acquire a per-device "control lock" before
performing control, programming, and low-level access operations.
(Specifically, these are the functions that manipulate the device handle
and utilize the FX3 <-> FPGA UART.)

Synchronous data transfer functions now hold a per-device, per-module
"sync lock" to ensure these operations are carried out atomically. The
control lock is also held during sync configuration, as upcoming changes
to introduce metadata support will require flipping some config bits on
the FPGA during this operation.

Only these top-level functions shall acquire these locks; the core logic
code should be able to assume that locks are already acquired.

To alleviate confusion, functions that are *not* part of the API, and
therefore are safe to call within the core logic, are stripped of the
bladerf_ prefix.

Now that pthreads is a required dependency, use of the sync API is
is no longer marked optional in the libbladeRF build.
ENABLE_LIBBLADERF_SYNC and related items have been removed from the
CMake build.
libbladeRF_test_ctrl: Rearranged test definitions and macros

This will allow an upcoming thread test to execute other tests.
libbladeRF_test_ctrl: Error out on invalid test name
libbladeRF_test_ctrl: Removed use of (s)rand()

Using a quick and dirty xorshift() implementation to more deterministic
behavior across systems.
libbladeRF_test_ctrl: Restore sample rate to "default" value
libbladeRF_test_ctrl: Added threaded test

This test runs some of the other control tests while concurrently
running RX and TX sync calls.
libbladeRF: Moved tuning functions from bladerf_priv.c to tuning.c

This is part of the cleanup for issue #190.
libbladeRF: Moved byte <-> SC16Q11 conversion to bladerf_priv.h

This is part of the cleanup for issue #190.
libbladeRF: Moved system gain functions, deadlock fix

Moved system gain functions from bladerf_priv.c to gain.c as part of
the cleanup efforts for issue #190.

In doing so, a stray MUTEX_LOCK() (without a matching MUTEX_UNLOCK) was
removed, which caused deadlocks.
Merge branch 'master' of https://github.com/Nuand/bladeRF