Add clearWhenEmpty option to markText

Stop doing this automatically for marks inclusive on both
sides.

Issue #1996
Fix infinite recursion in lineIsHiddenInner for stacked spans

Closes #1996
[show-hint addon] Be more precise in identifying hint element

... to prevent misbehavior in cases where the rendered hint element
contains an LI in its child nodes
[searchcursor addon] Deal with characters that multiply on case folding

And add a test suite.

Issue #2009
[activeline addon] Optimize

Issue #2007
Add an (experimental) hideFirstChars method to StringStream

Issue #2019
Disable a search test on Phantom

Due to unexplainable hanging.
Replace accidental emdash with dash in regexp
Remove all non-ascii text from codemirror.js
[merge addon] Support passing in document objects as content
[merge demo] Remove layout-breaking css rule
[less mode] Fix a few more unsafe method calls on .peek()

Issue #2028
[xml mode] Rewrite state machine to be simpler and faster

Tangentially related to issue #2023
[xml mode] Reset state when giving up on a bogus tag

Issue #2023
[manual] Point to extension functions from addon section
[xml mode] Fix bug introduced by a6aa48eee2c8262a8763f1e39afdf8a79a130a41
[closetag addon] Scan forward in document to look for existing closing tag

Issue #2025
[python mode] Add support for hanging indent
[comment addon] Test token type when uncommenting

To make sure it isn't seeing comments that are actually
strings.

Issue #1975
Use phantomjs from npm