Compile assert onlywhen NDEBUG isn't set
struct_io_frombuf can reuse buffer on dynamic fields.
Rename struct_io to sio wich is shorter and easy to write.

Should improve code readability quite a bit.
Fix a (stupid) crash when asserting the packet type