libknc: make knc_write() buffer a little more.

The old implementation unconditionally flushed all data on every
write.  This is likely to be slightly suboptimal.  We change this
to only flush when we've buffered a decent amount---and we do not
require the flush to write everything.

Now, knc_flush() will need to be called at the appropriate points
after knc_write()s.