libbladeRF: fix byteorder dependency in extract_field()

fixes #133
Debianization of libbladeRF and friends

How to build the .debs:
    wget https://github.com/Nuand/bladeRF/archive/master.tar.gz
    tar -zxvf master.tar.gz
    cd bladeRF-master
    debuild -i -us -uc -b

Caveat: once we get into a groove release-wise, we'll need to remember
to update debian/changelog (look at the 'dch' command)

This produces three .deb files:
bladerf_0~20131005-2_amd64.deb
    Contains bladeRF-cli, bladeRF-flash, and man pages
libbladerf0_0~20131005-2_amd64.deb
    Contains libbladeRF.so.0
libbladerf0-dev_0~20131005-2_amd64.deb
    Contains libbladeRF.so symlink, libbladeRF.h, and libbladeRF.pc

This is still somewhat fragile.  Also, it pretty much depends on
Ubuntu 13.10, which hasn't been released yet.  But we're ahead of
the game, no?!
Only copy one README.md file to debian docs
Add doxygen markdown files to generate man pages
Generate manpages for bladeRF-* with doxygen

It still requires manual canoodling, but the canoodling is with
markdown instead of nroff.
libbladeRF: Change where initialization occurs.
libbladeRF: Fix warning due to unused variable.
fx3_firmware: update GPIF2 design files to match .h files
libbladeRF, bladeRF-cli: Added support for retrieving USB device speed

Exposed API function and updated struct bladerf and both backends to
use the new enum.

Cleaned up warnings and unneccesary items in the API header.
libbladeRF: add si5338 peek functionality
bladeRF-cli: add MIMO clock settings

This commit introduces the first of many MIMO functionalities. MIMO clock
settings will have to be moved to libbladeRF eventually.
Setting the device as a MIMO slave makes the Si5338 use the SMB port a
reference. This is done by routing single-ended IN4 to PFD_IN_REF by setting
registers 28 to 30 to the following values:

PFD_IN_REF[2:0] = 001 (P2DIV_IN)
P2DIV_IN[2:0] = 011 (Clock from IN4 is input to P2)

reg(28) 0x2b  = | 0 | 0 | 1 | 0   1   0 | 1   1 |
P2DIV_IN[0] = 1
P1DIV_IN[2:0] = 010

reg(29) 0x28  = | 0   0   1 | 0   1 | 0   0   0 |
PDF_IN_REF[2:0] = 001
P1DIV_IN[4:3] = 01
P1DIV[2:0] = 000

reg(30) 0xa8  = | 1   0   1 | 0   1 | 0   0   0 |
PDF_IN_FB[2:0] = 101
P2DIV_IN[2:1] = 01
P2DIV[2:0] = 000

Register 6 is set to 4 so that the Si5338 loss of signal indicator knows the PFD
is using IN4 (FBCLK) as a reference.

Setting the device as a MIMO master makes the Si5338 drive the SMB port from
CLK3A.
cli: Add string.h and remove some tabs.
bladeRF-cli: rx/tx now use async interface, libbladeRF: USB dev speed API call

The rx and tx CLI commands now use the asynchronous stream interface to
yield more acceptable performance, and this code has been overhauled for
better readability. Command parameters have been added to allow for
configuration of the stream.

Although a bit overzealous, as "lock it if you use it" approach is taken
here. Optimizations may follow later..

Some rx/tx parameters now support K/M/G suffixes, where relevant.

To support sample rate sanity checks, an API function to check the
current USB speed has been added to libbladeRF. This speed is now
reported in the CLI 'info' command.
cli: Fix initializer and PRIu64 printing.
fixes issue #143

EN_LPF is bit 1 not 6.
Merge pull request #148 from LazyDodo/master

fixes issue #143
libbladeRF: Fix empty FPGA version "describe" and cache versions

The changes in ab36a93813325e0b51b9d747d17b623ebd29ea19 did not include
setting an FPGA version "describe" field to something other than '\0'.

Additionally, FW and FPGA versions are now cached upon opening a device.
The API calls now pass data from these cached values, rather than
re-read this information from the device.
bladeRF-cli: Fixes for Coverity items (CID 1107236 - 1107243)

CID 1107236 - 1107238: Dismissed as being intentional/false positives

CID 1107239: Fixed overflow in check_samplerate()

CID 1107240: Fixed memory leak in tx_csv_to_sc16q12()

CID 1107241: Condition associated with defect shouldn't occur,
             as bladerf_stream_init() should never return > 0. However,
             an ETYPE_BAD has been added to the CLI error types and
             used to initialize the err_type value in the RX and TX
             tasks. ETYPE_BAD should be used to initialize
             bladerf_error_type values to default values. In the event
             that unexpected bugs occur, this may help bring them to light.

CID 1107242: Removed incorrect conditional that relied on undefined
             value of status variable.

CID 1107243: Set bladerf_stream pointer to NULL after freeing, and
             added the stream deinitialization upon failure to the
             tx code (as there was a memory leak there). The double
             free() here shouldn't be possible, as the state transitions
             don't occur as modeled. However, we should be in the
             habit of setting re-used pointer to NULL after free(),
             and we'll see if this quiets Coverity. (If not, it's
             a non-issue and we should mark it as intentional.)
libbladeRF: Removed dead/unnecessary code

Addresses CID 1104712. The function returns at the first sign of error,
so the status check is extraneous.
bladeRF-cli: Fixed incorrect return value and potential leak

Memory leak pertains to CID 1107259.