Merge tag 'v0.16.0' into develop

0.16.0
Fixed a focusing problem.

If something had scrolled the editor pane between the loss of focus
and our regaining it, the scroll position would get lost. In
particular, this happened in Chrome when the user used the search
function to search text on the page. Chrome would scroll the page to
the hit. Without keeping the scroll intact, then the user would lose
their position when they clicked into the window to (for instance)
select the hit.
Fixed an autoinsert bug.

Autoinserting in the middle of a text node would cause a crash. This
has been fixed.
Fixed a positioning bug.
Removed some useless code.
Changed the height of the error markers.
Removed the caretchange event.

This event had become useless. _caretChangeEmitter is now
_possibleCaretChange and _caretChangeHandler is now _caretChange.
Removed some useless code.
Tooltip test.
Remove the tooltip associated with a deleted element.

When an element is deleted, if it had a tooltip, this tooltip is removed.
Typing replaces a selection.

When a selection is in effect and the user types a letter then the
selection is replaced by the letter typed. When the user types DELETE
or BACKSPACE then the selection is deleted.
Simplified caret handling.
Dropped _setFakeCaretTo and _fake_caret.
Dropped the refresh-caret trigger.
Got rid of _raw_caret.
Made the DOM selection functions private.
Replace _getDOMSelectionRange with getSelectionRange.

Make the replacement where it makes sense. getSelectionRange is the
public face of the editor whereas _getDOMSelectionRange is private.
_refreshFakeCaret does not need to save the range.
Remove calls to jQuery.
Rewrote to benefit from code reuse.