Fleshed out the new interface a lot more. Each buffer will now contain a next pointer. This means that when reads/writes happen, a list of buffers is given. This is a bit more general and allows batching. Buffer based tools will give the interface to add and remove items from the list, to it will be pretty easy. Also introduced both read and write buffers. To write something that has been read, it must be converted. The only way to do this is to copy. A real copy may or may nothappen, but the idea here is to make it explict and typechecked by the compiler. Will make it harder to go wrong.