buffer: add offset property
buffer: make .write's offset default to this.offset
buffer: implement implicit offset in write*
buffer: implement implicit offset in read*