Refactor HyperlinkClickHandler to cleanup event binding

Move control of event bindings from SessionController to
HyperlinkClickHandler so bindings will be updated whenever modifier is
changed. This allows some simplification as HyperlinkClickHandler can
simply use the KeyboardHandler.Modifier.
Remove unnecessary duplicate click handler in the viewer plugin

The viewer was quite recently modified to use a session controller to
take advantage of the improved selection rendering system. This makes
the manual creation of the hyperlink click manager unnecessary.
Add tooltip support for hyperlink
Enable the hyperlink tooltip in the ODT viewer
Merge pull request #439 from peitschie/hyperlinkTooltip

Add tooltip support for hyperlink
Add failing test showing crash with apply styles op
Use ranges when applying a style to better handle DOM changes

When first created, the text style applicator used to move nodes around
within the first while loop, often modifying the limiting range in ways
that were not expected.

In 5a86bdd, this behaviour was re-written to gather all the relevant
nodes and migrate them once all siblings in the container were checked.
With this change, it is now best to use the range once again, as this
avoids additional problems (see the modified test) with new children
being added within the range if new styling containers are inserted.