Remove some code duplication
Refactor progress updates
Implement callbacks for libbarobo
Reorganize directory structure
Various build improvements

Organized the CMakeLists.txt file and removed some of the brittleness in
the headers regarding Bluetooth.
Remove printf
Thread user_data through callbacks
Set completion on error
Merge branch 'f/implement-flash-firmware' into develop