This commit devides SerialPacket into a series of different structures, all decended from a common base class. Using a union was not a good idea.
It only took me 5 months.