Fix bug in updateScrollbars.

On IE8 only scrollHeight - d.scroller.clientHeight + d.scrollbarV.clientHeight evaluates to -ve in some cases. Guard that with returning 0 in that case. Seems a bug in IE8, so this can be treated as a workaround.
Don't generate <span class="cm-"> nodes when token() returns only line-foo/line-background-foo styles.
Remove tests using getElementsByTagName

The method isn't present on all supported platforms, and these
tests tested someting very obscure, and already failed on the v4
branch which representes the editor content differently.

Issue #2152
Handle spurious spaces from token().
[vim keymap] Fix to moveTillCharacter

Return null from moveTillCharacter if nothing is found, so that if a
deletion operation is active but no match was found, nothing gets
deleted. Add a unit test for moveTillCharacter.
Make hasFocus use document.activeElement, rather than internal flag

This way, it synchronously returns the current value, rather
than only being updated when an async focus/blur event fires.

Closes #2151
Fixed clojure indenting, now will try to use the user's setting
More aggressively clear line heights in refresh()

Closes #2157
[css mode] When indenting, properly pop off prop context before closing brace

Closes #2162
[closetag addon] Allow typing '/' if there's no matching open tag
[scrollpastend plugin] Don't get confused when the editor changes size

Closes #2160
[mdn-like theme] Add
[mdn-like theme] Integrate
[css mode] Added missing animation-fill-mode property

Also resorted the next few lines so one would not stick out farther than
the others.

https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode
[vim] Fix unescaping of escaped strings for search and replace

Add unit tests.
[css mode] Add simple support for @keyframes

Closes #2161
Bump version number
Wrap all cursors in a div
Move extend and shift flags out of selection objects
Rename confusing variable