Added a nap 0 to tight loop writing data to i2c

Without a nap, a tight loop writing to i2c seems to skip a large number
of writes. Took a long time to find this and not 100% sure why it works.
Moved comms (and download) into button press check

Serial comms is only triggered when the user presses the button,
program downloads are also checked for a short time during serial comms.
Added a named symbol for a numerical value
Wait longer for serial comms now it only happens on button press
Clarified serial comms error message
Renamed transparent to white