Standardise prototype CharList interfaces around new BufferViews

Pager and Editor now use BufferViews instead of direct Buffers
or CharLists.

Rationale: BufferViews allow multiple editors and multiple
highlighters to be applied to the same buffer at the same time
(in theory -- obviously there needs to be a way to update
BufferViews to reflect changed start/end pointers and redraw).

Placeholder C source code highlighter is currently just a copy
of the markdown highlighter (FIXME).