libbladeRF: Submit BLADERF_STREAM_SHUTDOWN without waiting on stream

Normally, we want to wait for the stream to be running before
submitting a buffer. However, BLADERF_STREAM_SHUTDOWN is a special
case; we want to always submit this immediately so that we can
end a stream, even if it's not currently running.

This commit fixes #244.
libbladeRF: Support NULL 'actual' argument for bladerf_set_bandwidth()

This function now correctly handles the case where a caller specifies
NULL for the 'actual' parameter if (s)he does not wish to retrieve
the actual bandwidth set.

This fixes #245.
bladeRF-cli: Added --help-interactive command line argument

Added a new command line argument that prints out the help text for each
of the supported interactive commands. The purpose of this option is to
make it easier to generate man page documentation that incorporates the
interactive command help.
bladeRF-cli, doc: Use --help-interactive to get cmds from bladeRF-cli

When building the man page, use the --help-interactive option to
bladeRF-cli to get the list of interactive commands.
bladeRF-cli: Reformatted help text

Because of how man pages format things, it's easiest (maybe) to
use tabs and whatnot to designate indentation, etc, in the help
output.

This unfortunately makes some of the help output look relatively
crappy, but at least it is more consistent!  :-)

Additional fixes/tweaks will ensue.
bladeRF-cli: Initialized value for help-interactive option flag

Previously, I hadn't explicitly initialized the flag used to indicate
whether the --help-interactive command line option had been provided,
which would sometimes cause the --help-interactive output to be
displayed even when the option was not specified. In particular, when
help2man would execute the --version option, it would sometimes instead
get the --help-interactive output, which was obviously no good.
bladeRF-cli: Removed python references and build dependencies

Since the man page generation has been changed from a python script to a
bash script, there is no longer a dependency on python.
libbladeRF: Moved internal/external sampling logic to lms.c

The "top level" API function implementations in bladerf.c are intended
to be fairly thin to allow for some future efforts:
    - Pulling files such as lms.c and si5338.c into NIOS code
    - Wrapping per-device locks around calls in bladeRF.c in some
      upcoming thread safety changes.

As such, the logic involved with switching between internal & external
sampling has been relocated to lms.c

This addresses item #234.
host: Added additional configuration-time libusb function checks

Added checks for the following functions so that builds on older setups
will error out with error messages at configuration time, rather than
compilation errors at build time.
    - libusb_error_name()
    - libusb_get_device_speed()
    - libusb_handle_events_timeout()
    - libusb_handle_events_timeout_completed()
libbladeRF: Check against VCO_LOW/VCO_HIGH.

When doing the search for the correct VCOCAP value, check to make
sure we are not equal to the edge stopping condition instead of
checking against VCO_NORM.  This avoids a problematic situation when
the found VCO_NORM value is on the cusp of being unlocked, causing
the upper bound to end prematurely.
libbladeRF: Added functions to check version numbers
fx3: Bumped version to 1.7.0

Version bumped to denote added firmware loopback feature.
libbladeRF: Check for required FW version when enabling FW loopback
libbladeRF: Bumped revision to v0.15.0

Changes since v0.14.0 tag include:
 - Overhauled backend interface to decouple device logic from libusb
   code. Moved code to a generic USB interface and libusb code under
   that interface. This should allow host-specific drivers to be more
   easily integrated.
 - Addressed race conditions in the async RX/TX interface. pthreads is
   now a required dependency of libbladeRF.
 - Bug fixes for the sync RX/TX interface
 - Windows build and compatibility fixes
 - API changes:
    + Added functions:
        - FPGA timestamp access (requires FPGA v0.0.4+)
        - Expansion board GPIO and SPI accessors (requires FPGA v0.0.4+)
        - Firmware loopback (requires FX3 FW v1.7.0+)
    + Changed SPI flash access functions
        - Functions operate in units of erase blocks and pages
        - Removed un-aligned accesses
bladeRF-cli: Bumped version to v0.10.8

Changes since v0.10.7 tag:
    - Updates to corresponding to libbladeRF API changes
    - Removed device reset after flashing firmware
    - Interactive help text command added to allow man page to
      be generated without needing a script to scrape text.
    - Preliminary support for XB-200
bladeRF-cli: Release "device control" lock while performing rx/tx wait

This fixes #251, which was a regression as the result of commit 85d1633.
By holding the "device control" lock while waiting, a completing rx/tx
stream operation would become deadlocked while attempting to disable its
associated module and notify the main task about the operation
completing.
WIP: Modify the RXVGA2 calibration routines.
Calibration update.
libbladeRF: Moved LPF DC tuning value write into address loop

This is just for readability. There's no functional change, since
there's only 1 address to loop over anyway.
libbladeRF: Added register settings from LMS FAQ to DC calibration fns

The following changes have been added to lms_dc_cal_loop() and
lms_calibrate_dc(), based upon recommendations from the LMS 6002D FAQ
(version 1.0r10).

    - Use the DC_REGVAL to determine success or failure, as DC_LOCK
      is reported (in the FAQ) to be unreliable. Retry if the result is
      31, setting the count to DC_CNTVAL to 0.

    - Enable DC comparators during DC calibration (default), and
      disable them upon completion to address linearity issues.

    - Disable DACs while performing TXLPF DC calibration