[xml mode] Make tag names case-insensitive in html mode

Issue #2304
[vim] Add reselect-Visual - 'gv'
[clike mode] Added C++11 keywords
[search addon] Fix case-insensitive highlighting

Closes #2309
[vim] Add simple vim-specific options system
[vim] Add pcre option, expose option API
[manual] Document show-hint "pick" event

Per change authored in https://github.com/marijnh/CodeMirror/pull/1979.
Add markerCleared, markerAdded events

And listen for them in the merge addon.
[merge addon] React more quickly to marker changes
[vim] A basic working implementation of macros that exercise insert mode
[sql-hint addon] Work slightly better on namespaced table names

Issue #2323
Fixes #2329 - include widget heights in estimates

If a line has widgets with heights, use them when estimating line height.

This prevents a .refresh() call from reverting to less accurate line
heights.
Work around broken Opera (Presto) getBoundingClientRect

Closes #2331
[vim] Add :nunmap and a simple test

In Vim, defaults keymap cannot be unmapped. They must be explicityly
set to <NOP>. In this case we allow that because
user defined maps are stored in the same map as the defaults.
[clike mode] Support C++11 unicode & raw strings
Fix linting (missing semicolon)
[pig-hint addon] Remove

It was broken and confused.

Make the mode register a list of completable words instead.

Issue #2324
[vim] Implement visual_o
[emacs keymap] Make setMark() be a toggle like in Emacs

pressing Ctrl-Space once starts the selection extension mode,
pressing it again cancels that
[vim] Added support for reg[isters] command