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 and upcoming test to execute other tests.
libbladeRF_test_ctrl: Added threaded test

This test runs some of the other control tests while concurrently
running RX and TX sync calls.