commands go through command processor
origin session propagated everywhere
more sensible syntax for command execution
undo-redo firing session events
tests for edit/focus
undo/redo sent with session id
merged with reentrant branch