Fix delayed firing of event handlers

The mechanism that was supposed to batch handlers during an operation and
fire them afterwards was broken -- handlers triggered during endOperation were
fired immediately.

Should be better now.

Closes #1226
Update the docs to match the current default of 10 for viewportMargin.
Fix recently introduced typo
Repair context menu.
Added support for Turtle RDF serialization
Integrate Turtle mode
Fix bug in measuring surrogate pair characters

Splitting them into two spans apparently prevents them from rendering
at all (not unexpectedly).
Remove useless (always true) test
[turtle mode] Remove unused argument
[matchhighlighter demo] Use a pseudo-underline background instead of a color

Closes #1232
Use a helper for getBoundingClientRect, allow this helper to be overwritten
Add two missing addons to compression helper
Fix problem where the gutter won't span to bottom of horizontally scrollable document
Use a less weird construct in createObj helper
Change key handling prototol to allow returning Pass, rather than throwing it

This to make dev tools show useful backtraces when an error is raised
inside a key handler. Once we've caught it, the backtrace is truncated.
[variableheight demo] Fix inconsistent text/markup
Added 'clike' mode as a dependency of php.
Fire "change" and "cursorActivity" on Doc objects

Issue #1238
Make sure delayed events are always delayed

They are triggered at points where the editor is in an inconsistent state,
so if their handlers cause further action on the editor/doc, bad things
will happen.
Use a short method blacklist rather than a long whitelist when delating from CM to Doc