Ensure lwan_writev() works with short writes

Apparently I misunderstood the affirmation that writes performed by
writev() are atomic, and never considered that short writes would be an
issue. However, as evidenced by Issue #77, this happens even on
localhost.

Use the technique shown in this[1] StackOverflow answer, which
basically finds which of the entries in the `struct iovec` that the
write couldn't be fully performed, adjust the buffer address and
length, and try again.

[1] http://stackoverflow.com/a/5859890