GUI firmware upload: change failpoint codes and print out in the event
of error. Do not open file if failure of erase occurs.
Generalize and revert back to single directory in firmware, bootloader and
example, with makefile to pass on microcontroller type.