Allow event focus to be returned to SessionController without scrolling to the top of the ODF canvas

Element.focus() has additional logic that attempts to bring the top of
the element into view. This causes the a document that has been vertically
scrolled to reset back to the top of the document each time an Editor
button is clicked.

This redesign abstracts the event management away, and uses an invisible
div as the primary event trap. Because the div is always visible and
centred, the browser does not perform any scrolling. Non-bubbling events
are automatically forwarded from the event trap to subscribers.

Fixes Issue #44
Redraw the current user's selection when switching focus back to the event manager
Disable focus to the direct canvas as Firefox doesn't pass focus to a nested child on click

When the event trap has focus and user clicked on the canvas, the focus
would not pass to the canvas on the first click.
Ensure the selection is reset again after the event trap receives focus

The focus event will sometimes update the window's current selection
after all event handlers have been called (observed on FF24, OSX).