Support for React and JSX, with smartIndent disabled

This builds on #1041 and disables smartIndent when editing JSX. There are still cases where CodeMirror will highlight JSX weirdly but until we have a real CodeMirror grammar for JSX, this makes editing quite reasonable.