Add phantomjs script to create pdf from odf files.
allow specification of build-version from outside (cmake)
Update CDN versions to use dojo 1.8.3
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).
Fix crash in gui.EventManager.unsubscribe(), splice called on wrong object
Update Closure Compiler and Node.JS.
One previously
 undiscovered error was found and fixed.
Update JSLint and add a patch to make future updates easier.
add a couple of helper functions into OdfUtils.js
Support image selection

Added a SelectType into OpMoveCursor to indicate whether it is a image
selection so we can draw our own selector after the OpMoveCursor is
excuted.

Thought about just draw the selector in the mouseup event, but it has
problem with undo a image deletion. the undo manager wouldn't know if the image
was selected before deletion.

known issue:
the selection box is moving up and down when using browser's zooming
functionality (working fine with the slider zoom though)