Revert OperationFactory interface changes made in a1f86ac

By specifically invoking a new when creating an operation instance
makes it quite difficult for external operation constructors, as there
is no easy way for external ops to share non-document state.

All WebODF ops don't have this issue as new functions can easily be
added to the OdtDocument interface to support the new requirements.
Merge pull request #464 from peitschie/opfactory-tweak

Revert OperationFactory interface changes made in a1f86ac
Add additional namespaces to OdtDocumentTests
Add a check to ensure document length is constant during position tests
Add additional checks around space elements
Preserve cursor step after annotation start when annotations are shown

Rendering annotations causes the number of available cursor positions
to be reduced by one. The original rule was added to stop the cursor
getting in between the annotation highlight span and the annotation end.
Rather than moving the valid cursor position to inside the span, this
simply removed the position entirely.

This patch adds additional logic to allow the cursor to stop just inside
the annotation's highlight span so the number of positions in the doc
stays consistent regardless of whether annotations are shown or not.

Incidentally, this also fixes issue #51.