Added a write(Seq[O]) method to facilitate writing multiple objects

Also implemented a stage that buffers data until it overflows or flushes