Compare event.which with actual value that is found in Internet Explorer
Handle IE10's non-standard event target name
Cache event-related details when calculating the range from current selection

Internet explorer will occasionally discard the event before the timeout
callback is triggered, resulting in "Member not found" exceptions being
thrown.
Ensure all args are specified for createNodeIterator

IE10 considers all of these arguments required and will throw if any are
undefined.
Workaround IE's broken Node.contains(node) implementation

See http://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect
Merge pull request #152 from peitschie/ie10-patchset2

IE10 compatibility fixes #2
Clarifying OdtDocumentTests setup to use steps consistently

Setup methods were using a mixture of steps & positions, making them
extremely confusing to understand
Use root-constrained filter when counting distance to the anchor node
Constrain both the anchor and cursor nodes when fixing cursor positions after an operation

Adjustments to the cursor position when near paragraph boundaries was causing
the selection length to incorrectly change, or the anchor to skip to the
following paragraph (see added tests).

Now, both the anchor and cursor are treated identically when "fixing" the
cursor selection after a document modification.
Condensed countBackwardSteps & countForwardSteps into countSteps on SelectionMover

Most consumers of this interface were re-implementing a "countSteps"
equivalent.
Merge pull request #150 from peitschie/fix-cursor-regress

Fixes for cursor "selection creep" when applying styling to a complete paragraph
Replace references to non-standard Range.comparePoint

Range.comparePoint is unsupported by IE10
Never use a text node for a tree-walker root

IE10 will throw an exception if the root passed
into a tree walker is a text node.
Centralising window selection logic

* Restore focus to canvas without clearing selection in IE10
* Suppress focus event behaviour when one is expected to to modifying selection
Bind window-related events on direct element as well (IE compatibility)

These events will not off the window if grabbed by the direct canvas
element.
Virtual selection demo

Implementation notes
* Rounds selection to the closest offset
* Resets the selection on mouse down
* Changes the mouse cursor on mouse down to indicate text selection is occurring
* Only consider text nodes as valid for highlighting
* Copes with vertical and horizontal scrolling
* Utilised advanced Chrome & Firefox point-to-caret translation
* WORKS WITH IE10

Test-related Features
* Region to test browser-based selection vs. virtual selection
Gloriously nasty implementation of caretPositionFromPoint for IE