refactor Buffer::Changeset

Now contains topmost and bottommost ever lines.
Complete refactor of how they are combined. Now is only for 'adjacent' changesets.
Moves elements from other changeset to destination.
Much faster than copying, but invalidates amalgamated changeset.

Also fix backspace bug in the process.