Introduce BufferIterator which simplifies a lot of buffer operations, like in kakoune.
Implement reversible commands.