Use proper CRC for flash parameter storage and refactor param save/load

Original checksum was extremely brittle; changed from sequential XOR to the crc16 used by the packet code.

Since changing the checksum code invalidates existing configuration data, took opportunity to refactor the save/load code and the in-flash data format, which also resolved some weird configuration corruption issues we've been seeing.