Optimized bootloader for space

Bootloader was greater than 3kB in size; optimized
main() in bootloader/main.c for size, shaving 16 bytes
off it and bringing it back under 16kB.
Write flash only if the data is different