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
Hacks to make virtual selection work (IE compatibility)