Improved versioning and debug output in the bootloader; patch version is now displayed (e.g., 11.1.9)
Bootloader reported version and the tag now match
Refactored + cleaned up a few source files (added braces, removed duplicate definitions)
Expanded EEPROM space and updated EEPROM format version
Major/Minor/Patch version for bootloader are stored in EEPROM so they can be read by the device
"Reprogram" endpoint uses a different signature than "bad image", which allows us to add new logic to the bootloader that will boot the image already on the device if the device is physically reset. In the previous setup, providing a kind of fail-safe fallback in case the update never comes.