Firmware CMake

Much more reliable build system, doesn't get confused by file naming in build/m0 and build/m4 directories.
Provides support for external projects (e.g. PortaPack) to incorporate HackRF firmware more easily.