Add grammar scope to EditorView

**NOTE: This pull request is still work in progress. I just wanted to open it early to keep my intent and progress public, and discoverable.**

The sole purpose of this pull request is to add grammar scope information to `EditorView` instances, so that e.g. editor key bindings can trigger based on grammar. Useful if you want to invoke different build or formatting commands in various packages, for different types of grammars.

Right now I'm solving this by appending CSS classes to the view, but I'm leaning towards adding a `data-scope` attribute instead, to prevent pollution and potential conflicts that might cause all manner of mayhem.
What do you think about `data-grammar` instead of `data-scope`? It seems a bit more descriptive.