First stage of factoring the gap buffer out of the Editor object

This is so we have a sensible place to put the undo log and have an object
that can be reasonably more persistent than a displayed window.

(The new test was for something that broke in mid-change)
clean up the mark creation API a tad
test GapBuffer specifically
set_content is never used for anything that's not a NOOP
remove lower-level interfaces from the editor object