Packet is now owned by Decoder.  Moved various read functions to the objects which are read from