Add protocol definitions
Rework packet module.

Try to have a more flexible packet handling.
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
Fix typos
Fix bad alignement of trailing backslash
Build tests only when TESTS is enable