Don't synchronize browser & WebODF selections unnecessarily

The window selection only needs to be synchronized with WebODF on a
mouse down operation. In all other cases, the selection doesn't need to
be maintained. Removing the selection most of the time significantly
helps performance as there is heavy costs to modifying part of a DOM
tree that is selected.

In order to allow cut/copy to continue to function, an event trap was
necessary that "holds" the selection after mouse-up. This is set as
content editable to allow the cut/copy events to be fired in Firefox and
Safari.
Reset the browser selection on drag end

A drag end will consume the corresponding mouse up operation, meaning
the window selection is not cleared. Cope with this by listening for
the drag event and clearing the selection.
Merge pull request #232 from peitschie/event-trap-v2

Don't synchronize browser & WebODF selections unnecessarily
Moved Formatting.applyStyle into consuming operation

Apply style logic is only consumed in one location. Extra wrapping
functions added in StyleHelper and Formatting are unnecessary, and
should not have been called from outside an operation. Pushing this
logic into the operation prevents accidental misuse.
Add an apply direct formatting benchmark action

Additionally, the benchmark will now take configuration options via the
query parameters rather than after the hash.
Use cursor to dom range conversion functions on OdtDocument
Invert type dependency between Formatting and TextStyleApplicator

A text style applicator is a class that modifies the styles tree via
a formatting object.
Merge pull request #236 from peitschie/tsa-move

Move Formatting.applyStyle into consuming operation
* Add an additional flag moveCursor to OpInsertText,
and obey it to explicitly move the cursor to the
desired resultant position.
When doing this, take care to specify the correct
textnode position for text insertion (i.e. before
or after the cursor).
* Adapt the rest of the code that uses OpInsertText
to pass the correct moveCursor flag (true).
* Remove the 'return null' from the transform of
InsertText vs InsertText.
Adapt tests to specify the moveCursor flag
when using OpInsertText.
New cursor re-arrangement behaviour for OdtDocument.getTextNodeAtStep

The new logic no longer provides special behaviour for the requested member's
cursor. Instead, all inserted data will occur after any cursors occupying
that particular step.
Merge pull request #240 from adityab/insert-ot

Allow collaborative text insertion at same position
Create <office:meta> only on demand (and merge MetadataManager into OdfContainer)