FX3 cleanup and new flashing strategy

This is a monster pull request covering a handful of efforts to begin cleaning up the FX3 firmware.

Summary of changes:
 - Added ezusb.c/.h to provide support for recovering from FX3 DFU mode
 - Added JUMP_TO_BOOTLOADER vender request
 - Changed RESET vender request to take no data.  The previous code which transmitted data stall the USB bus.
 - Exposed read/write/erase FX3 SPI flash in libbladeRF
 - Added recover, erase, and jump_to_boot to bladeRF-cli
 - Added initial version of bladeRF-flash utility, which implements an initial version of https://github.com/Nuand/bladeRF/wiki/Proposal-for-new-FX3-firmware-loading
 - Fixed most build warnings in FX3 build
 - Added udev rules for FX3 bootloader and bladeRF bootloader (just 0xB2 image mode)
 - Moved device_identifier.c/.h to common
 - Split devinfo compare functions from bladerf_priv.c to bladerf_devinfo.c/.h in host/common
 - Added check for FX3 or bladeRF bootloader during probe.  If detected, it will print a recover command line.