moved output write buffering to CharOutputSink
CharOutputSink was changed to process char buffers instead of line-by-line input