Fix parameter annotation for getAppliedStylesForElement of Formatting.js
Preserve the text style when splitting at the end of paragraph.

At the moment, splitting at the end of the following paragraph
<p style-name="standard">hello <span style-name="bold">world|</span></p>
will create a new paragraph like below
<p style-name="standard">|<span style-name="bold"></span></p>

The cursor is moved out of the span due to empty span is not considered as
a valid cursor position in the current design. this causes newly entered
text are not formatted correctly.

Merged DirectTextStyler and DirectParagraphStyler into
DirectFormattingController. These have become closely related concepts as
a result of changes in this patch.
Disable the paragraph related styling methods if directParagraphStylingEnabled is false
Merge pull request #310 from kevinlli/splitParagraphImprovement

Split paragraph improvement
Add tests for the StepIterator class
Rewrite image selection to use StepIterators

OdtDocument.getDistanceFromCursor is no longer used by any code.
Rewrite some cursor move & extend actions to use a StepIterator
Simplify PositionFilterChain to not use named filters

PositionFilterChains no longer have any need to allow adding or removal
of named filters. In practice, filters are only ever added just after
construction, and remain unchanged beyond this point. This allows a
slight simplification of the PositionFilterChain interface.
Simply logic in OdtDocument.createStepIterator
Merge pull request #315 from peitschie/migrate-step-iterator

Rewrite some selection features to use StepIterators
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.