Make default scroll style for CodeMirror-scroller 'scroll'

And manually compensate for our own scrollbar sizes.

This way, we're no longer dependent on the size of our scrollbars
being the same as the size of native scrollbars, and can start to
think about custom scrollbars.
Add some scroll model tests
Add the scrollbarStyle option

Implements a pluggable scrollbar model. Interface not documented yet,
but quite simple (see forthcoming simplescrollbars addon)
[simplescrollbars addon] Add
Expose CodeMirror.wheelEventPixels
Fix bug that allowed visibleLines to return an empty viewport
Implement annotated scrollbars, rig search addon to show them
[merge addon] Support aligning both panels by adding empty space
[merge addon] Allow collapsing of identical stretches of text

Using the collapseIdentical option.
[merge demo] Describe aligning and collapsing functionality
[merge addon] Properly document
Fix bug introduced by b6be5c272349ffdad0b9
Cypher mode: add EXPLAIN and PROFILE keywords.
[mode/meta.js] Change Markdown name

The gfm mode is for the GitHub flavour.
[markdown mode] Fixed a bug in link matching
[stex mode] Reposition some else lines to match coding style
[stex mode] Also reset cmdState on blank line

Issue #2928
Issue #2958
Make sure viewportChange is fired properly

Closes #2955
[dart mode] Add
[dart mode] Simplify, make autoloading work

Issue #2952