libbladeRF: Removed inline specifier from libusb.c probe functions

These functions in questions are being used in a couple places. There's
no particularly good reason I see to request them to be inlined.
libbladeRF: Added FX3 firmware read and validation routines

This changeset introduces functionality for reading and validating an FX3
firmware file, as well as for accessing the firmware data in a
per-section manner.

The validation currently consists of testing the checksum, checking
size fields for bogus values, detecting a truncated file, and
ensuring that RAM addresses are in the SYSMEM or I-TCM regions of
the FX3's address space, assuming the default linker script is used
(which the bladeRF firmware does use).

This is based upon the boot image format documented in Cypress's AN76405:
"EZ-USB (R) FX3 (TM) Boot Options" (http://www.cypress.com/?docID=49862)
libbladeRF: Added "probe target" to the device probing mechanism

This is intended to allow the same device probing code to find and
present a list of bladeRF devices or FX3 bootloader devices.
drivers: Added FX3 bootloader to customized cyusb3.inf
libbladeRF: Added API support for bootloader probe and recovery

API functionality to probe for FX3 bootloader devices and download
firmware to detected devices has been introduced.

This is based upon the boot image format/procedure documented in
Cypress's AN76405: "EZ-USB (R) FX3 (TM) Boot Options"
    http://www.cypress.com/?docID=49862
libbladeRF: Updated dummy backend

This file suffered some bitrot. It has been updated to include dummy
functions for all struct backend_fns members.
libbladeRF: Removed bootloader detection log_info() call

This sort of detection of bootloader devices will be added to the CLI
to be more backend-agnostic and make libbladeRF less noisy.
host: Centralized duplicated code

Moved function to get string description to conversions.c.

There's a similar function within libbladeRF's backend.c, but that
is intended to be used in the device information string; this is
intended to be a bit more humand-readable.
libbladeRF: Addressed potentially uninitialized variable

status could be undefined the library is built with no items in the
usb_driver_list. This is unlikely, but keeps the build clean.
bladeRF-cli: Use libbladeRF functionality for bootloader recovery

This was previously dependent on libusb-specific code. The functionality
added to libbladeRF is now used in order to support recovery when
using the Cypress driver backend (as well as any future back
implementations.)
bladeRF-cli: Inform user if bootloader devices are present

Before attempting to open any devices when going into interactive mode,
running a script, or executing "-e" arguments, bladeRF-cli now checks
for any FX3-based devices in bootloader mode, and alerts the user
to their presence, recommending that he or she see 'help recover'
for more information.

Previously, a libbladeRF log_info() message was used to alert users
to the presence of FX3-based devices enumerating in bootloader mode.
This was removed to alleviate noise and because it was buried in
backend-specific code.

Given that the bladeRF-cli is intended to be the "go to" program for
debugging the state of a bladeRF device, this alert is more
appropriately located in this program.
bladeRF-cli: Touched up help text for 'info' command