ppkt_t refactoring

 - Clarify the difference between length of a packet, length of the
   entire chain and the number of elements in a chain.
 - Use writev to write the entire packet in one go, rather than calling
   write for each ppkt_t in the chain.
   This will be especially noticable if we end up having to turn on
   TCP_NODELAY.