Notebook text editor

This is a work in progress, but basic loading, editing and saving appears to be working.

This sits on top of #6865, because `CodeMirror.findModeByMIME` is apparently new in 4.7.

closes #1581
is `mimetype` the mime type of `message` or `content`?  And why do you need both `content` and `message`?