libbladeRF: Re-implemented sync interface, updated API docs, renamed timeout function

The sync interface has been re-implemented atop the existing
asynchronous interface. This is currently opt-in and only enable when
pthreads support is enabled and available.

Some clarifications have been made in the API documentation,
specifically in the explanations of the various stream parameters.

The bladerf_set_transfer_timeout and bladerf_get_transfer_timeout have
been named more appropriately, as these control stream transfer
timeouts, as opposed to all transfers.
libbladeRF: libbladerf_test_sync runs full duplex
libbladeRF: Added loopback and clean SIGTERM handling to test_sync
libbladeRF: Moved internal sync handles into an array

This is a bit more consistent with what's already done with timeouts,
and is the preferred method of adding per-module items in the future.
libbladeRF: Include required OSX common/ directory items in build

The following items were missing from the changes introduced in commit
28ed798ce9b4a81f1bad6a6803a3d4dab3f146d3:

   - Add common/include/osx directory to libbladeRF include path
   - Add common/osx/src/clock_gettime.c to libbladeRF build