basectx is very well and good, but we have two other filectx-like classes
that do not inherit from it (arbitraryfilectx and absentfilectx`), and
cannot, because basectx is still rather tied to representing a file in a
Let's add some structure to these classes with a mininum set of abstract
methods enforced by the ABC module.