This wraps our headers so we can be generic over them over a Msg type.
Every implementation has to implement bincode::serialize and deserialize