Update undo/redo widget coding style

Widgets no longer use the nested callback approach to instantiation.
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.
Restore proper shadow cursor operation on FF

Firefox throws an exception if the SVG shape is rendered while the
polygon node is disconnected from the document (e.g., after an undo).
Merge pull request #427 from peitschie/undo-fix

Fix edit breakage after performing an undo
Fix compilation of dojo resources on Windows
Merge pull request #429 from peitschie/win-editor-fixes

Fix compilation of dojo resources on Windows
Respect the "test" parameter in the web based testing also for asynchronous tests.
Merge pull request #425 from vandenoever/async

Respect the "test" parameter in the web based testing also for asynchron...
Add test for frame position.
Add a helper function to get the bounding rectangle for an ODF page.
Improve positioning of frame that relative to page.
Add type that is a union of ClientRect and a struct with the same members.
This makes is possible to use them interchangeably.
In older browsers, positioning is only allowed on whole pixels.
The positioning test should set the allowed error higher in such browsers.
Add more supported length units.
And add a bit of documentation.
Check for null return value for getBoundingClientRect.
Slight clarification of exception.