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.