Since the contents of the packets are different than before, I decided to gut the serialization code. I'll reimplement the internals soon.
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.