Eliminate unnecessary conversion from cursor steps to range
Remove unnecessary (and impossible to use) constraint argument

The constraint function only allows a choice between two adjacent steps
if the supplied position is not exactly on a step. With things such as
inline roots and other complex features of the addressing system, this
is extremely difficult to use correctly.

As it is currently unused, the best thing to prevent future problems it
to terminate it now!
Remove unnecessary test returns (again!)

These were just cleaned up, and here someone has gone and reintroduced
them again! What gives!
Merge pull request #600 from peitschie/cleanup

Remove sharp edges from various APIs
Split CollapsingRules out of OpRemoveText

This functionality will be shared with the soon-to-exist merge paragraph
operation.
Implement OpMergeParagraph

In order to improve the OT-ability of text and paragraph removal
with other operations, the merge behaviour has been extracted.

The logic for building up the necessary remove operations has
been encapsulated in TextController for now as all uses pass
through this point still.
Cleanup leading/trailing insignificant whitespace on paragraph merge

Failing to clean up these empty whitespace blocks will cause them to
unexpectedly become significant whitespace after a merge is performed.