Document scrollCursorIntoView event
[xml-hint addon] Work properly when the cursor is directly after < or </

See http://discuss.codemirror.net/t/html-hints-not-working-just-after/45/6
[yaml mode] Highlight strings

This also helps closebrackets close quotes

Closes #2918
[dockerfile mode] Add
[dockerfile mode] Integrate

Issue #2888
[idl mode] Add
[idl mode] Simplify and add hintWords support

Issue #2921
[vim mode] Remove duplicated statement
[css mode] Slightly better heuristic for unrecognized props in nested declarations

Issue #2922
[javascript-hint addon] Allow a custom global scope

Defaults to `window`
Fix association of modes with tokens for addModeClass

The mode associated with a token is now the inner mode at
the time when the token is started. The htmlmixed and markdown/gfm
modes were fixed to return empty tokens during mode switches
when necessary to enforce this rule.

Issue #2919
[overlay addon] Fix bad synchronization that was breaking gfm mode

Issue #2919
[ruby mode] Remove obsolete license link
Allow keymaps to have a call property, which is called to look up bindings

Issue #2915
[clike mode] Add Objective-C Support
[clike mode] Integrate Objective C dialect

Issue #2920
Allow styling of line gutter backgrounds

Also add support for "gutter" in add/removeLineClass.
Suppress error in IE8/9 when initializing detached
Fix rmClass

Add tests
[vim] Visual mode rewrite

I'm rewriting the way that visual mode is written to:
1. Fix some tricky bugs, like https://github.com/codemirror/CodeMirror/issues/2913, and a couple I uncovered while doing this. (Unit tests updated)
2. Significantly simplify blockwise visual mode

The core of the changes here is that I'm creating a vim selection model. The selection model consists of

```
vim.sel.head
vim.sel.anchor
vim.visualMode
vim.visualLine
vim.visualBlock
```

I'm creating a 2-way binding between the vim and codemirror selection models. All motions now rely only on the vim selection model. Operators and actions still rely on the codemirror selection model, since they operate directly on the text.

Sorry for the gigantic change but I couldn't make it any smaller and still pass all the tests... I'm planning to delete `getSelectedAreaRange`, `getLastSelectedAreaRange`, and `selectBlock` in future changes as they are obsolete now that vim keeps its own selection model.

An added bonus here is that visual line mode now has a cursor that can be moved.