editor: implement per-language history

Basically, just change the content and history local storage objects from
being string/history to being dict[language] = string/history.

I also thus disabled the feature that always clicks the first example
when we change languages.

I also tried to make sure we get the correct behavior when the user
loads the page with no state, or with the old state.

Refer #179
editor: when empty physical plan, also disable rerender

Every time we switched to the tab, it would call re-render which would
show the old, outdated plan.
editor: remove keypress resetting

I forget now why we had this in the past, and I couldn't figure
out why in 5 minutes of playing. Maybe something else we've
re-designed has fixed it. In any case, I don't want pressing
space or arrow keys to reset the parsed plan, etc.
editor: refactor editor state

Condense the content/history into a single dictionary.
Refactor the editor-changing/language-changing/example-loading code.
Result: lose ~75 lines of code (127->51).

[Of course my prior patch may have added that many.]