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
Yeah, looking at the code you have uploaded to GitHub, I don't see `message` anywhere but here :P