Focus the window when the editor is clicked

Prevents issue where the cursor blinks but an iframe is focused,
so typing doesn't end up in the editor.
[dialog addon] Add kludge for IE focus bug

Issue #2191
[markdown mode] Rename `header2` -> `header-2`

and `formatting-header4` -> `formatting-header-4` for consistency.
[julia mode] Various improvements
[vim] fix Ctrl-[ (escape) shortcut for visual mode
use correct classes for headers

The header classes for specific levels of headers, which should set the size of each header did not match the classes in the editor. This commit fixes that.
[show-hint addon] Don't cover cursor when taking up full screen height

Closes #2213
expose full completion data to extraKeys in show hints.
Fix another case of bootstrap blues

(Border-sizing on the CodeMirror-linenumber class)

Issue #2210
[runmode addon] Fixed resolveMode in runmode.node

This fix has been modelled after the getMode function in runmode.node in
v3.20.0
[source-highlight script] Fix bug in HTML-escaping
[rst mode] Fix innerMode and copyState

Issue #2221
[rst mode] Swap mode definitions

So that the default mode when this is loaded first is actually a
working mode.

Also: indent the file to correspond to the rest of the codebase.

Closes #2223
[rst mode] Fix demo

Issue #2223
[vim] Make text objects work with },), and ].

Previously commands like da<object> only worked with the opening side of the
pair, so you could do da{ but not da}.

I also removed some duplication of calls to selectCompanionObject (at the cost
of switching from map lookup to an if-else chain).
[real-world uses] Add i-MOS
[rst mode] Fix creating of start states

So that it doesn't error when inner modes are missing.

Issue #2224
[anyword-hint addon] Fix variable clash

Closes #2225
Merge branch 'master' into v4

Conflicts:
	mode/rst/rst.js
[runmode.node addon] Integrate with node's require mechanism

Mode dependencies are now loaded in a saner way.