fx3_firmware: Consolidated and GPIF (re)configuration in gpif.c

The PIB and GPIF (re)configuration have been tucked away in gpif.c,
which is now used by the FPGA loader and RF link configurations.

Unnecessary PIB and IOMatrix configurations have been removed.

This fixes Issue #195, as the FPGA loader previously did not include a
PIB reset, which has been found to be required when changing from a
16-bit to 32-bit GPIF configuration.
fx3_firmware: Perform "warm" GPIO config when enabling flash access

This fixes issue #196.

A "warm" IO reconfiguration is required, otherwise the FPGA's nConfig
will be reset to a default of CyFalse (resetting the FPGA).

Additionally, the firmware.c and associated functions have been renamed;
these are flash-related functions in general -- the "Firmware" name was
misleading.
fx3_firmware: Patch version bump to denote fixes for #195, #196
libbladeRF: Return to IF_NULL when closing a device

This has been found to be necessary on OSX. Without changing back to the
NULL interface, we run into upon re-opening the device.
libbladeRF: Switch back to IF_CONFIG or IF_RF_LINK after flash ops

We need to switch out of IF_SPI_FLASH after flash operations in order to
continue using the FPGA.

This, in conjunction with firmware v1.6.1, fixes #196.
libbladeRF: API change for get/set data transfer timeout

Addresses issue #202.

Fixed name and made return value an operation status rather than
returned value for consistency. We may need to make some
backend-specific calls here in the future, hence this interface
returning status.

The current implementation is not backend-specific, and has been moved
up to the top-level.
libbladeRF: Refactored correction functions and enumeration.
bladeRF-cli: Cleaned up correct command

Added return value and parameter checks. This command now ensures that the FPGA
is loaded. Performed misc. cleanup.
host: Fixed sample format misnomer - Q12 -> Q11

The sample format was incorrectly named, as there are only 11 fraction
bits, not 12.

The enumeration value has been renamed, and a macro definition is
provided for reverse compatibility. (This macro def will be removed
prior to the first "release.")
bladeRF-cli: Correct rx/tx error messages for invalid config params

Fixes issue #204
bladeRF-cli: Moving over to use rational rates for sample rates.
libbladeRF: Updated description of bladerf_log_set_verbosity
hdl: Changed constraints and signaling, fixed SPI/UART contention

The FPGA, when in SPI flash access mode, has the UART disappear. It should not be
driving the UART signal or the CTS signal. When the SYS_RST is asserted, drive those pins to 'Z'.
libbladeRF, bladeRF-cli: Switch naming convention to BLADERF_CORR_<DEVICE>_<REG>
hdl: Modify phase range for IQ correction.

Modified the phase range of the FPGA IQ corretion to be +/-10 degrees instead of +/-45 degrees.
libbladeRF: Documented correction parameter values
libbladeRF: Rearranged and cleaned up header, removed unimplemented bladerf_stats

Definitions and typedefs in the libbladeRF.h header have been moved to
their appropriate groups so that they show up in the relevant module in
Doxygen output.

The bladerf_stats structure and associated function have been removed,
as this functionality is not schedule for implementation in the near
future. This will be re-added when this functionality becomes available.

The bladerf_set_loopback() function has been marked unimplemented as it
currently does not function as desired, but is schedule to be
implemented.
libbladeRF: Always start the device in USB_IF_NULL when opening

This is redundant and likely unnecessary -- more of a "just in case"
libbladeRF: Cleaned up debug/verbose log info
hdl: Version bump to 0.0.2

Updating patch to denote fixes to:
 - Phase range for I/Q correction
 - Fixed constraints
 - SPI/UART signal contention fix