fx3_firmware: Cleaned up bladeRFAppThread_Entry

The loop in this function was rather strange, and theoretically
could roll over and reload the FPGA (albeit for an extreme uptime).
fx3_firmware: Added "device ready" query

This "device ready" status is used to denote that the device is
ready to be configured and used. Until the device becomes "ready"
all control requests will return an error.

This provides libbladeRF with a means to query when the device is done
loading an FPGA from flash, as well as any other firmware-based
initializations that may be needed in the future.
fx3_firmware: Version bump to v1.8.0

Minor rev incremented to denote added to "public" interface.
libbladeRF: Wait for device to report "ready" when opening it

This is intended to prevent the device from being opened while
firmware initializations (e.g., flash-based FPGA loading) complete.
fx3_firmware: Added sample .gdbinit file

Defaults for bladeRF FX3 debugging with the Segger J-Link
libbladeRF: Removed unnecessary lna read/writes in lms_calibrate_dc()

The LNA is left the same throughout this function and there are no
desired side-effects from writing it. Removing it to simplify upcoming
fixes and cleanup.
libbladeRF: Started cleanup of lms_calibrate_dc() function

This first stab at cleaning up the lms_calibration_dc() function
focuses on separating out the backup/restore and init/deinit portions
to separate (inline) functions for better readability.

The objective here is mainly to separate logical components from this
function to simplify some upcoming changes.
libbladeRF: Updated LMS RMW operations in dc cal to use lms_set/clr()

While refactoring the DC calibration code in order to more easily
integrate some upcoming "retry" changes (and improve readability),
it was noted that there were a number of simply RMW operations that
could be replaced with lms_clr() and lms_set().

The DC calibration-related functions have been updates to use these
instead of a manual LMS_READ(), modify, LMS_WRITE() operations.

Removed the associated "TODO" for this task, as it does not appear
any remaining sections would benefit from this change. There are some
slightly more complex "modify" portions of RMW operations - they're
probably most readable as is.
libbladeRF: Added LMS DC cal retries with gain adjustments

Instead of bailing out and reporting "Bad DC_REGVAL" when an LMS DC
calibration routine fails to converge, we now attempt to reduce gains
and retry the calibration.

Generally, the convergence failures appear to be caused by signals
being too noisy for the internal calibration algorithm(s).

On a relatively small sample set, this has shown to alleviate
convergence failures, perhaps with a trade-off with some accuracy in the
DC cal.