Make StringStream.match return null when the match isn't at current position

Closes #761
Make right-click select-all work on some browsers

The hack is horrible, but it seems to do the trick.

Also simplifies context-menu handling somewhat.

Issue #755
Add a .INI mode
Revert "Add a .INI mode"

It turns out the properties mode already handles .ini files just fine.

This reverts commit 9afd96d94d65e27329887d16e8e2cd7f6ffed1d6.
Fix assumption that StringStream.peek returns a string

Closes #776
Save overhead of operation when polling doesn't find a change
Simplify line content-node API, get rid of makeTab indirection
Change the way highlighting information is updated

 - Background parsing now never goes past the visible part of the
   document.

 - We only store style information for lines that are actually visible
   (and then keep it cached).

 - When the document changes, background highlighting always
   re-highlights from the change to the end of the visible part.

 - Gets rid of compareState mode methods and the hairy heuristic that
   tried to simulate it when absent.

 - The onHighlightComplete callback was removed, since it no longer
   really applies -- the document is only fully parsed when scrolled
   to its end.

This should help preserve memory (a huge document will no longer
immediately have parser state and highlighting information built up
for all lines, but only for the parts that you look at), and removes
the pathological case when you, for example, are typing at the top of
a huge XML document, and opening or closing a tag causes a whole
re-highlight to cascade all the way to the bottom because the
compareState will detect a change.

Issue #688
Remove unused function copyStyles
Add highlighting tests for Markdown mode.
[vim keymap] Reset keymap after YY is pressed

Closes #774
Remove obsolete before_script section in .travis.yml
[clojure mode] Check if +/- is immediately followed by digit before marking as leading sign

Closes #782

Correct highlighting for the following code snippet should highlight the + as an operator, and each 2 as a number (taken from http://clojuredocs.org/clojure_core/1.2.0/clojure.test/deftest)

    (is (= 4 (+ 2 2)))
Tweak context menu hack to make select-all reliable on FF

Issue #755
Fix corruption of operation data introduced by 6ba24813c96687dac2f23db100780bc42e6ed808
Add CodeMirror.version to API
Remove accidentally committed conflict junk
[shell mode] Fix unsafe use of object

Parsing the word constructor would look up words["constructor"], and
return Object.prototype.constructor instead of a style string.

Closes #793
[markdown mode] Improvements to parsing and tester

(Squashed commit. Below are the original commit messages:)

- Add highlighting test for Markdown for consecutive backticks.

- Make it possible to wrap inline code in multiple backticks.

- Add highlighting test for Markdown mode to only allow a single space
  to separate brackets.

- Make it possible to separate bracket groups with a space.

- Allow for horizontal rules to use dashes.

- Allow for *any* number of -'s or ='s for setex headers.

- Remove requirement that the text for setext headers have to be
  highlighted.

- Might revisit someday to work on this, but in the meantime, it's
  better to prevent regressions than to be picky about what would be
  highlighted in an ideal world.

- Correctly match single line footnotes with title.

- Match inline links in Markdown mode.

- Don't match unclosed code blocks.

- Get mode test highlighter in line with CodeMirror.highlight().

- It would be nice to use all native functions, to avoid having to update this manually each time.

- Fix tests per fixes made to mode test highlighter.

- Properly handle multiple classes for mode tests.

- More correct handling of EM and STRONG in Markdown mode.

  Per Markdown documentation: "You can use whichever style you prefer;
  the lone restriction is that the same character must be used to open
  and close an emphasis span." # This is the 15th commit message:

- Allow escaping of * and _ by surrounding with spaces.

  Per Markdown documentation:

  "But if you surround an * or _ with spaces, it’ll be treated as a
  literal asterisk or underscore."

- More correct support for inline code blocks.

- Adjust Markdown highlighting tests to fit readability, rather than
  100% conformance with Markdown documentation.

  Although unclosed italics, bold, and inline code would not be
  formatted by a Markdown parser, it is extremely helpful to have the
  styles added even when it is not yet closed. It may be a good idea
  to add an 'incomplete' flag for each at some point, in order to
  style it (and mark it) as different. Perhaps piggyback off of
  "error".
[markdown mode] More improvements to parsing and tester.

Markdown mode

- Add additional link tests and correctly match link titles on next
  line.

- Adjust tests code so sections (including "Basics") can be rearranged
  and removed easily without breaking the script.

- Add tests and fix highlighting for lists.

Test harness

- Sort styles in mode test script so "quote string" = "string quote".