Robutness---changed how I call iconv().

Apparently, if you call iconv() with too small an output buffer, it'll
return E2BIG, but the output buffer will have what it can already there.  In
that case, you can save what you have, reset the buffer and try your
conversion again.

The old code just hoped to get a large enough buffer, dynamically allocated
on the stack.  This code uses a fixed size output buffer and in the E2BIG
case, keeps what it did and resumes.