libbladeRF: Return "unsupported" when trying to enable the XB-100

This addresses issue #309. The XB-100 isn't currently supported via
libbladeRF. This support will come in the future, after the necessary
functionality is presented in the FPGA/firmware to expose this to the
host.

xb_attach() in xb.c was written in a way that would result in a
successful error code being reported when provided with an invalid or
unsupported expansion board type. This has been addressed, with some
cleanup to this function.

In making this change, it was noted that setting BLADERF_XB_NONE was
not disabling an attached expansion board.  A FIXME was added here to
draw attention to this; I've registered an issue for this and will
assign it to the author of the XB code.
libbladeRF: Fixed USB 2.0 regression introduced in 7b0cc24f

When changing submodules to not call the top-level API functions,
I missed the fact that bladerf_config_gpio_write() was performing
an adjustment on the write value in order to ensure the DMA size
bit was not clobbered.
bladeRF-cli: Add support for selecting XB-200 filters

This addresses issue #288.
bladeRF-cli: Changed xb argument order and xb command code cleanup

The xb command has been updated such that the arguments are now
in a more intuitive order:

    xb <model_number> <subcommand> [arguments]

Where model_number is "100" or "200" and the subcommand and associated
arguments are dependent upon the XB model.

Fixed detection of invalid xb command arguments and reorganized
xb commands code to improve readability. Further touched up help text.
bladeRF-cli: Added information and touchups to xb command help

The board_model and subcommand items are now annotated with <> to
denote they are mandatory.

Descriptions of each of the filter XB-200 filter options have been
added.
libbladeRF: Added additional information about XB filter & path options
libbladeRF: Touched up logic and debug messages in xb_attach()

After some discussion, disabling or switching XBs is not going
to be supported (currently).  Hotswapping is not recommended, nor
would this be a common use-case.

As such, this is enforced, and the messages have been reduced to
the debug level to generate less noise.
libbladerf: add meta support
libbladerf: add RX meta support
libbladerf: add TX meta support
libbladeRF: Added additional information to sample format descriptions
libbladeRF: add TX meta flag support
libbladeRF: [WIP] Initial timestamp test.
common/thread: Added lock acquisition/release log messages

This should help track down deadlocks when using:
  -DENABLE_LOCK_CHECKS=ON

For best results, also configure with the following, to get a
file name and line number. (Heads up -- lots of output!)
  -DENABLE_LOG_FILE_INFO=ON
libbladeRF/test: Moved PRNG routine to common dir for use in other tests
libbladeRF: Updated sync.c to use CONFIG_GPIO wrappers

Calling the top-level bladerf_* functions will yield deadlock.
libbladeRF/test: Added random gap-size to timestamps RX test
libbladeRF/tests: Tweaked test execution in timestamps test

Added fn pointer array, to alleviate the need to manually compare
test names and call an explicit fn
libbladeRF: Added note about full-duplex operation with metadata