Restore focus back to the event trap after clicking the undo button

Partially fixes issue #426.
Expose the SessionController's undo/redo interfaces for the editor

Undo has additional logic to ensure the event trap is restored after
an undo is performed. At some point, this will need to split out of
the SessionController, but for now it is simplest to expose this to
the EditorSession for use.

Fixes remaining problems causing issue #426.
Subscribe to canvas events rather than sizer element in EventManager

The sizer element is replaced when an undo is performed, causing no
mouse move events to be reported after an undo. This breaks the shadow
cursor display.

There is no particular reason 67c1c23 changed the event binding to use
the sizer rather than the canvas element other than for consistency
with where the event trap was being added, so it is safe to revert
this particular modification.