Remove extra.js keymap experiment

It has been superceded by keymap/sublime.js.
Remove fakedLastChar hack

Issue #1474 was the cause of this hack
Issue #2384 was apparently caused by it

Recent Webkit-ish browsers seem to no longer have the problem that
it was working around.
Better documentation for 'primary' arg to setSelections
[sublime keymap] Ctrl-F3 and Ctrl-Shift-F3 bindings
[sublime keymap] Fix findUnder, add test

Issue #2380
[sublime demo] Make findUnder bindings show up
Fix bug in transposeChars command
Fix read from wrong property in moveV method
Only call signalLater for "markerCleared" if cm exists.
Only call signalLater for "markerAdded" when cm exists

Issue #2390
Remove showIfHidden option to addLineWidget

(It wasn't working in the first place.)
Notice height changes outside of viewport, update scrollbar whey they happen
Fix lineAtHeight when asking past end, but last line is collapsed
[sublime keymap] Make Esc behavior conform to Sublime Text

Closes #2348
Improve handling of changing widget height in changed() method

Issue #2355
[sublime keymap] Ctrl+d should go back to top after reaching bottom
[sublime keymap] Touch up 337e9771ab7f649b8c1f4abfce5c3346180610b5
Fix typo in compression helper
Mark release 4.0