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.