Re-implement the selection commands using new StepsTranslator interfaces

This re-implementation also addresses problems when navigating passed
annotations as identified in issue #65 & #65.

This also fixes a large performance issue with extending or moving the
cursor via short-cut keys.
Re-implement select-all behaviour using new StepsTranslator interfaces

This also addresses an outstanding TODO in code that select-all was only
ever selecting the entire document, rather than all the text inside the
current root (e.g., the current annotation)
Merge pull request #253 from peitschie/para-select-fixes

Paragraph & document selection fixes
Make cursor sub-element CSS styles component-specific

Previous implementation was using the element type (span or div) to
determine if the element was a handle or caret. This is problematic if
additional elements are placed inside the cursor node (as necessary for
proper IME support)
Allow multiple subscribers to the cursor update event
WIP Partially working. Still needs more corners rounded

TODO
- Figure out if this works on touch screens?
- Add license information to new classes
- Test in an NV build
- Revert Caret changes
- Fix caret blinking around images (blinks really high)
- IME overlay in safari is really broken
Don't reset focus if the event trap already was in focus
Test harness to help troubleshoot some IME/editor issues
Firefox bug workaround

https://bugzilla.mozilla.org/show_bug.cgi?id=773137
https://bugzilla.mozilla.org/show_bug.cgi?id=787305
Regain event trap focus in the IME rather than SessionController
Add required argument to create text node call