Packet builder now uses POKE_* macro that push bytes one by one using
memcpy to avoid any alignment issue that may appear on architectures
like ARM. The use of those macros instead of IOV renders the code
usually smaller except for very simple protocols.
Packet parser does not use structure casting any more. This is not
safe on architectures that do not handle unaligned read. We now read
packets sequentially using memcpy when reading more than one byte.
This makes the parser harder to read and somewhat longer.