Add a CompoundEvent class which represents
an event that can be represented as a logical
composition of several events working together.

As a first usage of this class, the 'longpress' event
is introduced.
This event fires once when a finger is placed against the
screen for 400 milliseconds without moving or lifting.

Select a word when long-pressing on it.
Add two handles to a selection's endpoints.

These are meant to be draggable.
Make selections touch-modifiable with handles.

Two new compound events:
* 'drag', which depends on 'touchstart', 'touchmove',
and 'touchend. It fires whenever a finger is placed
on an element with class 'draggable', and then moved.
* 'dragstop', which depends on 'drag' and 'touchend'.
It fires whenever the finger is lifted after a drag
on a draggable element.

SessionController, upon encountering a drag event on
a selection handle, updates the shadow cursor's selection
to match the one prescribed by the handle movement, thus
being very fast.

When a dragstop event is encountered, the selection of
the shadow cursor is fed to the local member's cursor
via SelectionController, thus utilizing an op.
Make EventManager adds a class touchEnabled
to the canvas element when it detects a touch
event (because simply sniffing for the existence
of touch events is not reliable).
Only show the selection handles of the
shadow cursor and the local cursor.
Just in case, to prevent any leaks due to interrupted
gestures, clear all longpress timers on EventManager.destroy()
Avoid timer leaks: store and delete timers
in and from an object in the emitLongPressEvent
proxy.
Inject srcElement property in CompoundEvents
for IE
Merge pull request #449 from adityab/touch-selections

Touch selections
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.
Add tests with draw:frame directly in office:text.
This requires position: relative in office|text to get the frame positioned properly.
Simplify layout tests by having common styles.
Fix positioning for horizontal-pos="left" and vertical-pos="top".
Code cleanup and add a test for anchor="as-char".