In edit mode, only open a hyperlink with Command+Click on MacOS

This matches the behaviour of LibreOffice.
Respond to ctrl key press event in edit mode only.
Stops FireFox from opening two new tabs upon ctrl/cmd + click a hyperlink

Fixes issue #70 and partially for #69 by prevent browser default action.
In edit mode, resets hyperlink cursor style to text whenever the editor got focus.

This prevents the cursor stays as hand icon in case user release the ctrl key after the editor lost focus.
Merge pull request #317 from kevinlli/hyperlinkImprovement

Address a few hyperlink related issues
Group direct formatting of multiple paragraphs into a single enqueue
Improve some documentation and variable names in undo stack
Ensure continuous operation is actually adjacent to existing edit ops
Use operation groups to improve undo behaviour

Support has been added for operation groups. Operation groups (i.e.,
a group of ops queued together) are never split across multiple undo
states.

When groups are used, a new operation will be considered continuous
with the current undo state if it is continuous with the most recent
operation of the same type in the most recent group in the existing
undo state.
Allow edit & non-edit ops to interleave if edit ops are continuous

Previously an edit would always start a new undo state if there last
operation in the current undo state was a non-edit. This change means
moving the cursor around will not reset the redo stack, more closely
matching other office suites.
Re-use session.enqueue to replay operations for the undo manager

An executing operation needs to emit various other signals (e.g.,
signalOperationStart) in order for various other controllers and UI
managers to perform correctly (e.g., preserving focus, re-drawing
the selection etc.).

The simplest way to ensure this happens is to use the session.enqueue
call. The UndoManager will ignore any new operations while performing
an undo.
Improve function names in UndoStateRules
Improve flow readability slightly in UndoStateRules