Stricter typing of the setProperties data
Merge pull request #822 from kossebau/moreSetPropertiesTyping

Stricter typing of the setProperties data
Change step insertion/removal signaling to differ from normal signals

These events feed straight into the steps cache, and must be processed
by the cache before any external consumers receive the event.
Only process signals created by an operation after execution is complete

This ensures the operation cannot be accidentally interrupted by an
external consumer of an event.
Merge pull request #823 from peitschie/delay-emit

Only process signals created by an operation after execution is complete
Cope with test names containing angle brackets
Verify the number of steps vs. expected number of cursor positions
Fix doc length check when iterating backwards
Report one test per cursor position document fragment
Print function result rather than function.toString for test description
fixup! Cope with test names containing angle brackets
Add test showing position stability issue near annotations
Add additional tests showing position stability problems
Fix position instability around highlighted annotations

By checking only nodes that pass the supplied node filter, the position
logic can safely ignore out-of-place cursors near highlighted annotations.