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 benchmark hooks for calculating document distance travelled
Add pages per hour and kilometres per hour as benchmark units
Output the webodf version the benchmark is running against
Make benchmark UI slightly more colourful
Make element variable names more consistent
Merge pull request #418 from peitschie/benchmark-units

Improve benchmark appearance slightly and add km/h & pages/h units
Add checks for empty text nodes in OperationTests

Empty text nodes should never be left behind by an operation. Adding
these extra checks have caused some operations to fail.
Stop whitespace upgrade logic from creating empty text nodes
Merge pull request #430 from peitschie/empty-text-nodes

Reduce the number of places that create empty text nodes
Add op tests reproducing issue #417