[vim] More escaping fixes

1) Fix a bug whereby multiple '\'es in the replace part of a search and replace
string were getting collapsed into a single one.
2) Split flipEscaping into two specialized functions -- one for the regex part,
and one for the replace part.
[livescript mode] Remove reference to separate license

Closes #2272
[python mode] Highlight 'self' variable

Closes #2274
[python mode] Also highlight the cls variable

Closes #2275
[real-world uses] Add FF & Chrome dev tools, Laborate
Force a scrollbar update when adding a visible line widget

Issue #2282
add LATIN SMALL LETTER SHARP S (U+00DF) as nonASCIISingleCaseWordChar
[vim] Support for \{n\}, \{n,m\} and \{n} syntax for counted matches in regex.

Issue #2283
Add a findMarks method

Closes #2200
[rulers addon] Add
Fix bug in release script
Mark release 3.22
Bump version number post-3.22
[release notes] Fix links in 3.22 notes
[real-world uses] Add Cruncher and jscpd
Fix broken link in release notes for solr mode.
[toml mode] Fix new array of objects syntax
Merge branch 'master' into v4

Conflicts:
	lib/codemirror.js
	package.json