Improve performance of StringStream with long lines

Fixes Issue #1301

StringStreams.prototype.column was always calculating the column offset for a
position by walking from index 0 in the string to the current start position.
That is factorial in performance and gets noticeably slower with long lines.

StringStreams only ever advance forward. So when determining the column we can
cache the value for a previous position on the line. Then the next time column
is called, we only need to update the cache for the small portion that the
Stream advanced. This way we only ever walk the stream once.
Fix typo in manual.
Improve performance of StringStream with long lines (match)

StringString.prototype.match(<string>) may do a lot of unnecessary work:

  - If it is caseInsensitive it was calling toLowerCase on the entire string.
  - It did an indexOf search through the string for a pattern, but only cared
    if the string started with that pattern.

Because a string pattern has a fixed length, we only need to run toLowerCase
on a small substring of the stream, and we only compare this small substring
to the pattern.
[vim] Clean up v2 references
[vim] Incremental search
[vim] Ctrl-C and Ctrl-[ exit dialog
[vim] Initial implementation of .
Update for release of Clojure 1.5.0.
Clip updated scroll positions to a sane range
[javascript mode] Recognize bitwise operators '~' and '^'

This was causing "1^2" to tokenize as: (number, "1"), (variable, "^2). By
tokenizing these bitwise operators as operators CodeMirror can correctly
syntax highlight the 2 as a number. Likewise the number in "~0".
Give example of the extraKeys option.

Issues #988, #742, #612, etc. show that CodeMirror users tend to:

1. Not find how to make the Tab key insert spaces instead of a tab,
2. Miss how to use extraKeys to easily solve the issue.

Adding an example helps them find a solution immediately.
Give heightForcer a width to make sure it actually forces height
Add the soft-hyphen character to the list of non-printing chars

Closes #1310
[vim] Fix handling of invalid search regexps.
Make CSS mode configurable, use it to implement SCSS mode.
[scss mode] Integrate
Correct path of package from codemirror.js to lib/codemirror.js

Ran into this when trying to include CodeMirror from Browserify - the
path of `codemirror.js` doesn't point to the necessary
`lib/codemirror.js` file.
Fix 1-2 pixel jumps when brackets are highlighted

With the eclipse theme, if you move your cursor on a bracket and have the matching bracket option enabled, spans with borders are inserted. They push the rest of the line to the right by the amount of the border width, which looks very crappy. Using outline instead of border fixes this
iOS keyboard opening fix
M-x delete-trailing-whitespace (lib/codemirror.js)