Fix a performance regression when deleting large amounts of text

Having the event manager in focus during deletion causes text removal to
be approximately 3x slower.
Merge pull request #309 from peitschie/perf-regression

Fix a performance regression when deleting large amounts of text
Suppress fail messages for expected-to-fail tests

Having these always log out regardless makes it very difficult to pin
point failing tests.
Fix incorrect test expectations (reproducing issue 261)
Implemented faster & more robust cursor position fixing logic

Existing behaviour was slow if the cursor has a large distance between
the
anchor and focus nodes. It also tended to lose the first letter when
right
near the start of a paragraph or root boundary.

New logic avoids the need for expensive positional lookups, instead
exploiting the fact that the actual step value of the cursor is expected
to be unmoved. This allows the start and end points of the range to be
simply moved to their nearest valid step.

* Re-ordered ambiguous elements in test
"Remove_DeleteLastCharacterInSpan"

Fixes issue #261
Rename ImageManager to ImageController
Rename TextManipulator to TextController
Merge pull request #307 from adityab/controller-rename

Rename Image and Text manipulators to *Controller
Merge pull request #311 from peitschie/fix-positions-tweak

Implemented faster & more robust cursor position fixing logic
Preserve both cursor and anchor nodes when removing an annotation
Merge pull request #312 from peitschie/remove-annotation-crash

Preserve both cursor and anchor nodes when removing an annotation
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.