Deal with EWOULDBLOCK sanely

This means packing up our half sent body as a tuple (Simple container
type, for distinguishing) and stuffing at the end of the queue.

By iterating over the data string we hopefully avoid slicing and dicing
more than we need to.