bladeRF-cli: add a few more error messages
libbladeRF: change to using alt_settings

This commit correctly changes the bladeRF's behavior by using mutually exclusive
alternate interface settings. Interfaces are not guaranteed to be exist one at a
time, thus they are unfit for use as an operating mode index.
fx3_firmware: change to using alt_settings

This commit correctly changes the bladeRF's behavior by using mutually exclusive
alternate interface settings. Interfaces are not guaranteed to be exist one at a
time, thus they are unfit for use as an operating mode index.
libbladeRF: cache calibration and OTP data reads

This commit caches the caclibration and OTP data reads, and performs them when
the USB device is "open()"ed.
fx3_firmware: Add the ability to leave SPI/OTP programming mode

This commit allows the FX3 to exit SPI/OTP mode, and go back to the RFLink. This
transition wasn't allowed before because it was used to force the user to reboot
their unit after upgrading. It is now required because SPI flash/OTP commands
that read calibration and factory data can occur at anytime.
fx3_firmware: cache calibration and OTP data reads

This commit allows calibration and OTP data reads to happen when the device is
not in "firmware programming mode" (ie. mode #2). Switching to RFLink mode
brings down the FPGA and every other operation running in "RFLink mode".
libbladeRF: switch to RFLink mode if FPGA is programmed

This commit was introduced because the change over to using USB alternate
settings causes the libusb to change the device to its first alt-interface when
it is released. This basically means that as soon as the command line is closed
the device goes back to alt-interface 0. This commit figures out when this
happens and manually goes back to RFLink mode, alt-interface #1.
libbladeRF: add legacy mode support for devices running <v1.1

Lagecay mode support allows libbladeRF to upgrade and downgrade the firmware to
and from any version. All other features such as streaming samples, and talking
to any of the on-board devices will not work; the user has to upgrade the
firmware to the latest version before anything else can be done. The command
line now prints a message when legacy mode is enabled, and asks the user to
upgrade to the latest version.
Add device reset functionality

This commit adds the much needed device reset functionality that allows the
device to reset after an upgrade and start running the new firmware.
fx3_firmware: bump firmware to v1.1