Annotations controller is always specified in a SessionController
Provide a mechanism for forcibly overriding a keybinding

SessionController needs to override the backspace key at all times, and
if the document is not editable, simply return true. The easiest way to
do this is to switch out the keybinding, and forcibly clobber the existing
keybinding when leaving edit mode.
Merge pull request #293 from peitschie/edit-mode-twice

Don't crash if edit-mode is entered twice
Capture cursor registration for undo event even when not in edit mode

Any cursor add or removal commands should be tracked for the purposes
of restoring the document state. If a cursor operation is missed, the
document will not re-add the cursor after an undo operation.
Don’t reset the undo manager state when entering or exiting edit mode

This allows consumers to enter and exit edit mode multiple times without
the undo stack being reset. Once the initial undo state has been captured
after the document is loaded, there is no major problems with preserving
the undo state (other than the undo manager’s shameful performance).