Buffer, ReadBuffer, WriteBuffer: split Buffer interface into three