The Pull Request to End All Pull Requests

This includes a major refactoring of the USB stack (thanks, bgamari!), the Makefile system (not sure yet if it's an improvement), and much work to push shared code into libraries (still much to do here).
Also added SGPIO DMA support, and a semi-formalize way of compiling and executing M0 code.
The CPLD code now adjusts the unsigned data from/to the baseband codec (MAX5864), providing a two's complement interface over USB (this requires changes in related projects like gr-osmosdr). The CPLD can also do simple 1-of-N decimation of received samples in hardware, assuming the baseband filter is narrow enough, or interferers are not of concern.
Oh, and there's some changes to accommodate the forthcoming HackRF One.