Changed strategy for reading hex file and uploading program data. Hex file is loaded as-is into RAM and is not checked for contiguous addresses (it turns out not to be true for some valid hex files). The comms class gets passed a pointer to the program in RAM and handles all of the details of uploading it.